111,129
社区成员
发帖
与我相关
我的任务
分享//第2句,直接嵌套
try
{
try
{
}
catch (IOException)
{
}
finally
{
}
}
catch (OverflowException)
{
}
finally
{
}
//第3句,包含的函数中嵌套
void Method()
{
try
{
}
catch (IOException)
{
}
finally
{
}
}
try
{
Method();
}
catch (OverflowException)
{
}
finally
{
}
//第4句,内层只能捕获IOException,所以内部抛出的异常会被外部catch (OverflowException)捕获
try
{
try
{
throw new OverflowException();
}
catch (IOException)
{
}
finally
{
}
}
catch (OverflowException)
{
}
finally
{
}
private test_1(){
test_2();//这里还是没有捕捉 这里已经是最顶层了 都没有捕捉 代码直接在 test_3 那那一句停下来报错
}
private test_2(){
test_3();//这里也没有捕捉 转载到test_1
}
private test_3(){
thrown new Exception("test");//出现异常 这里并没有捕捉异常 跳转到test_3
}
当出现异常的时候 如果有try catch 那么代码会进入离异常最近的一层catch 中去
这种情况直接自己上代码去理解 static void Main(string[] args)
{
try
{
//try catch 内部嵌套
try
{
Method();//这个方法引发异常
}
catch
{
//这里会捕捉异常
}
}
catch
{
}
finally
{
}
}
public static void Method()
{
//抛出异常
throw new Exception("exception");
}
//创建一个控制台应用程序,只有这两行代码,F5进行执行,会看到程序崩溃了
Console.WriteLine(10/0);
Console.ReadLine();
//创建一个控制台应用程序,输入下面的代码,F5执行,程序会给出错误信息,而不是崩溃掉
try
{
Console.WriteLine(10/0);
}
catch(Exception ex)
{
Console.WriteLine("some wrong occur,error message:" + ex.Message);
}
Console.ReadLine();