《程序员的第一年》---------- 学会抛出异常 你的程序人生才幸福
爱情就是死循环,一旦执行就陷进去了。
情绪不好的时候碰到问题时,头脑都是晕的。
今天一个程序上线,因为一个异常没有处理,报错时无地方处理,程序崩溃了。这个让是要挨骂的哦。
----------------------------------------------------------------------------------------------------------------------------------------
Try catch 知识是从MSDN里看的,只是自己的笔记,如有不对,请不要吐槽。
-----------------------------------------------------------------------------------------------------------------------------------------
http://msdn.microsoft.com/zh-cn/library/vstudio/0yd65esw.aspx
-----------------------------------------------------------------------------------------------------------------------------------------
throw 语句用于发出在程序执行期间出现反常情况(异常)的信号。
引发的异常是一个对象,该对象的类是从 System.Exception 派生出来的。
-----------------------------------------------------------------------------------------------------------------------------------------
try-catch 语句由一个 try 块后跟一个或多个 catch 子句构成,这些子句指定不同的异常处理程序。
引发异常时,公共语言运行时 (CLR) 会查找处理此异常的 catch 语句。如果当前执行的方法不包含这样的 catch 块,则 CLR 会查看调用当前方法的方法,然后会遍历调用堆栈。 如果找不到 catch 块,则 CLR 会向用户显示一条有关未经处理的异常的消息并停止执行程序。
(所以当异常未处理的时候,可以根据堆栈来寻找异常)
finally 一般都是用于处理后勤事吧
总结:
catch 和 finally 一起使用的常见方式是:在 try 块中获取并使用资源,在 catch 块中处理异常情况,并在 finally 块中释放资源。
1.可以使用不带参数的 catch 子句捕捉任何类型的异常,但不推荐这种用法
2. catch里有
throw;
表示从异常中提取源信息,然后向父方法发送异常。
3.catch里有
throw new exception(e);
表示可捕获一个异常并引发另一个异常。