Sil*_*ght 2 c# exception-handling try-catch
请参阅以下代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
mymethod();
}
catch (Exception ex)//First catch
{
MessageBox.Show(ex.ToString());
}
}
private void mymethod()
{
int a = 10;
int b = 0;
try
{
int c = a / b;
}
catch (Exception ex)//Second catch
{
MessageBox.Show(ex.ToString());
//int c = a / b;
throw new Exception(ex.ToString());
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想catch
在第二次catch
执行后强制第一次执行!如何强制执行上述操作并显示第二个catch
错误?我想看到ex.ToString()
两个catch
块都一样.
提前致谢.
而不是抛出新的异常,只需重新抛出现有的异常:
private void mymethod()
{
int a = 10;
int b = 0;
try
{
int c = a / b;
}
catch (Exception ex)//Second catch
{
MessageBox.Show(ex.ToString());
//int c = a / b;
throw; // change here
}
}
Run Code Online (Sandbox Code Playgroud)
更新:捕获mymethod
异常并向Click处理程序提供这些详细信息的另一种但略微不太优选的方法是将新异常传递包含在新的异常中:
private void mymethod()
{
int a = 10;
int b = 0;
try
{
int c = a / b;
}
catch (Exception ex)//Second catch
{
MessageBox.Show(ex.ToString());
//int c = a / b;
throw new Exception("mymethod exception", ex); // change here
}
}
Run Code Online (Sandbox Code Playgroud)
同样,我链接的帖子有更多细节.
归档时间: |
|
查看次数: |
910 次 |
最近记录: |