<C#高级编程>第11章笔记
感觉和Java的异常处理差不多。。
第11章 错误和异常
异常类
在C#中异常都派生于System.Exception类,大部分的异常类都在System命名空间中(除了IOException及IO相关的异常类放在System.IO命名空间)。
通常异常分成SystemException和ApplicationException。前者多为.NET运行库抛出,后者是第三方定义的异常类。
用户要自定义异常时直接派生ApplicationException,重写其中的方法即可。
捕获异常
一样的也是try..catch..finally的语法。规则也是一样。
不同在于由于.NET可以支持多种语言,如果抛出的并非派生于System.Exception的异常(即并非C#代码抛出的异常),此时可以通过不带参数的catch块捕获。
若没有捕捉异常,最终.NET运行库会捕获它,代码会即时中断并提示用户代码没有处理异常,同时给出异常信息。
与Java的异同
不必也不能在方法签名后面强制显示可能抛出的异常信息。
不强制一定要处理异常。