异常的问题

weikeli19 2016-03-10 01:07:33
如图:
请问我划下来的2号3号4号句子分别什么意思?能不能用简单的代码演示给我看一下 ?谢谢了 搞分献上
...全文
181 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Poopaye 2016-03-10
  • 打赏
  • 举报
回复
//第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
{
}
crystal_lz 2016-03-10
  • 打赏
  • 举报
回复
2 3 也就是说 try catch 是可以嵌套的 4是说 如果执行代码的时候 遇到一个异常 如果在当前的函数内 没有进行try 那么此时就会去他的上一层 如果上一层也没有 try 那么直接终止

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 中去 这种情况直接自己上代码去理解
huhu88a 2016-03-10
  • 打赏
  • 举报
回复
你把: try---catch ---finally 当作一个整理来看,用的时候一块用就行,将来开发的时候你就明白,其实这是一个1+1=2的问题!
全栈极简 2016-03-10
  • 打赏
  • 举报
回复
static void Main(string[] args)
        {
            try
            {
                //try catch 内部嵌套
                try
                {
                    Method();//这个方法引发异常
                }
                catch
                {
                    //这里会捕捉异常
                }
            }
            catch
            {

            }
            finally
            {

            }
        }

        public static void Method()
        {
            //抛出异常
            throw new Exception("exception");
        }
江南小鱼 2016-03-10
  • 打赏
  • 举报
回复
有个try catch异常捕获,代码进行解答

//创建一个控制台应用程序,只有这两行代码,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();
vc_learner 2016-03-10
  • 打赏
  • 举报
回复
简单解释下 1 国内翻译的书,只能呵呵,不能一个字一个字去理解;我看了3遍没看懂! 2 不明白的bing 下就有好多相关BLOG ; 3 这几行大致意思: try---catch ---finally 块,就跟 if --else 一样可以嵌套用; 一个函数内的try--catch-finally块 则执行顺序是 try块 -- catch(如try 内有抛出异常) ===> finally块 try 内有抛出异常包括: 自己抛出和其调用的函数抛出
江南小鱼 2016-03-10
  • 打赏
  • 举报
回复
你的图呢,撸主?
weikeli19 2016-03-10
  • 打赏
  • 举报
回复
并且用//注释一下 谢谢

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧