在 catch 块内进行 throw 的多种方式
来源:互联网 发布:企业购买软件流程 编辑:程序博客网 时间:2024/05/21 16:23
参考了throw; vs. throw ex; Here's the difference!我才知道在catch块内的throw;和throw ex;是有区别的,以前都不知道可以直接写throw;呢。
这两者的主要不同在于输出的stack trace上:
- 如果你直接使用throw;,那么stack trace就和根本不存在这个catch块的时候一样,显示错误根源是真正抛出异常的地方。
- 如果你使用throw ex;,那么stack trace就认为你catch到的异常已经被处理了,只不过处理过程中又抛出新的异常,这时候stack trace就把throw ex;当作错误根源了。
显然,后者会让stack trace的信息量少了,增加了追踪错误来源的难度,所以最好不要这样做。如果你要进行catch,然后你又要让异常继续冒泡,除了throw ex;以外你还有另外一个选择:
try
{
MethodThatThrowsException();
}
catch (Exception ex)
{
throw new Exception("oops!", ex);
}
http://www.cnblogs.com/cathsfz/archive/2006/11/12/558298.html
这时候,你就将原本的异常封装进了新抛出的异常中,而stack trace会自动认为内部异常是导致当前异常的原因,也就会把内部异常的stack trace也递归显示出来。
- 在 catch 块内进行 throw 的多种方式
- 在 catch 块内进行 throw 的多种方式
- 在catch块中throw new Exception的意义
- 在catch块中throw new Exception的意义 .
- 方法内catch块throw Exception 未捕获仍然编译通过的问题
- catch块中throw new Exception的意义
- 在catch中throw
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗
- JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally 分别代表什么意义?在 try 块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别代表什么意义?在try块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- C++ 的 try/catch/throw
- throw catch
- 关于近期测试(2006/12/21)
- j2ME 测试连网的例子
- 晕晕噩噩
- 使用USB摄像头(Webcam)拍照
- Asp.Net生成验证码
- 在 catch 块内进行 throw 的多种方式
- Java异常处理的陋习
- HTML-加速、再加速
- 在ASP.NET页面上轻松整合JavaScript
- 输入自动完成类
- 很快
- static与non-static的区别
- 日历
- ASP.net ajax 下载地址