c# 中的内部异常(inner Exception)

来源:互联网 发布:英语口语翻译软件 编辑:程序博客网 时间:2024/05/17 09:02

转载请注明来自:黄朝辉的博客
首先来一段代码

using System;using System.IO;public class Program{    public static void Main( )    {        try        {            try            {                var num = int.Parse("abc");                            }            catch ( Exception inner )            {                try                {                    var openLog = File.Open("DoesNotExist", FileMode.Open);                }                catch                {                    throw new FileNotFoundException("OutterException", inner);                }                                          }        }        catch ( Exception e)        {            string inMes, outMes;            if (e.InnerException != null)                inMes = e.InnerException.Message;            outMes = e.Message;        }            }}

在上面的例子中,将abc转换为int会抛出FormatException异常;打开了一个不存在的文件,会抛出FileNotFoundException异常,由于我将捕获到的异常作为了FileNotFoundException的内部异常, 我在外部就可以通过内部异常(InnerException)来知道第一个FormatException异常。
此外,如果一个异常的内部异常为空,通常意味着它是造成当前异常状态的根源。
参考:stackoverflow上的说明

1 0
原创粉丝点击