一秒钟法则:来自腾讯无线研发的经验分享 by 刘昕
2014-08-15 16:27
295 查看
异常的概念: 所谓的异常通俗讲就是由于种种原因 导致程序没有按照正常的逻辑执行。 而这些因素有些是可以预料和排除的 而有些则是致命和不可预知 Java为尽可能降低这些因素对程序的影响推出了这套异常机制 通过异常类将错误的信息返回 根据异常信息恢复正常逻辑或讲信息输出 作用: 增强程序的健壮性 也便于编程人员发现解决问题异常分类: 错误 和 异常(运行异常 和检查异常)其实这种分发有点勉强和歧义 (错误 也是运行异常的一种只是字面上区别(主要用于严重错误)
Error RuntimeException Exception Throwable 其中Error RuntimeException 属于运行异常 Exception Throwable 属于检查异常 其中Throwable 是所有异常类的父类各类异常区别 : 运行异常 是在程序运行期间发生的异常 不需要在程序中显示捕获(try catch) 检查异常 则是在编译期间(写程序时)自动检查 一旦方法中有异常抛出则需要捕获或 抛出否则编译不通过 这个便是两个异常本质区别 其它基本没有什么区别 自定义异常 : 继承 Throwable Exception RunTimeException Error
异常链接 : 当捕获某一个异常之后需要抛出另外一个新异常而又想保存上一个异常的信息
可以通过把上一个异常赋值给新异常的属性cause 则在输出新异常的同时
也会把上一个异常输出(Throwable中有这个属性 并提供了对应的构造器构造器或)
如
public class TestException extends Exception {
publicTestException(Throwable e){
super(e);
}
}
try{
.....
}catch(NuLLPointException e){
throw newTestException(e);
或
throw new newTestException().initCause(e);
}
更新异常堆栈 : e.fillInStackTrace() 这个方法主要用于当捕获一个异常 并抛出这个异常 可以通过这个方法将异常抛出点更新为当前行 try-catch-finally : try{ .....异常监视区
}catch(NuLLPointException e){ 处理异常 }finally{
无论是否有异常 都要执行代码块
也可以这样用try{}finally{}
}
本文出自 “不落西” 博客,请务必保留此出处http://375163948.blog.51cto.com/7498815/1258933
Error RuntimeException Exception Throwable 其中Error RuntimeException 属于运行异常 Exception Throwable 属于检查异常 其中Throwable 是所有异常类的父类各类异常区别 : 运行异常 是在程序运行期间发生的异常 不需要在程序中显示捕获(try catch) 检查异常 则是在编译期间(写程序时)自动检查 一旦方法中有异常抛出则需要捕获或 抛出否则编译不通过 这个便是两个异常本质区别 其它基本没有什么区别 自定义异常 : 继承 Throwable Exception RunTimeException Error
异常链接 : 当捕获某一个异常之后需要抛出另外一个新异常而又想保存上一个异常的信息
可以通过把上一个异常赋值给新异常的属性cause 则在输出新异常的同时
也会把上一个异常输出(Throwable中有这个属性 并提供了对应的构造器构造器或)
如
public class TestException extends Exception {
publicTestException(Throwable e){
super(e);
}
}
try{
.....
}catch(NuLLPointException e){
throw newTestException(e);
或
throw new newTestException().initCause(e);
}
更新异常堆栈 : e.fillInStackTrace() 这个方法主要用于当捕获一个异常 并抛出这个异常 可以通过这个方法将异常抛出点更新为当前行 try-catch-finally : try{ .....异常监视区
}catch(NuLLPointException e){ 处理异常 }finally{
无论是否有异常 都要执行代码块
也可以这样用try{}finally{}
}
本文出自 “不落西” 博客,请务必保留此出处http://375163948.blog.51cto.com/7498815/1258933
相关文章推荐
- 一秒钟法则:来自腾讯无线研发的经验分享
- 一秒钟法则:来自腾讯无线研发的经验分享
- 一秒钟法则:来自腾讯无线研发的经验分享
- 来自腾讯无线研发的经验分享
- 中科院、腾讯、深圳明源研发团队管理经验分享
- 2.4G无线射频方案--SI24R1研发经验分享
- [个人推荐]可伸缩性最佳实践:来自eBay的经验[zz from infoq translated by 郭晓刚]
- 腾讯游戏分享汇:天天飞车六大研发经验
- 来自一个程序猿前辈的经验总结 拿来分享给大家
- 【转】腾讯欢无线产品欢乐斗地主设计分享
- 豌豆荚研发管理经验分享-软件项目管理及绩效考核方法
- 《Android 面试指南》来自腾讯、阿里巴巴、欢聚时代、美团、聚美优品、悦跑圈等大佬分享的面经
- [腾讯面试] 2015校招腾讯阿里面试经验分享(拿到offer)
- 2016届阿里实习生java研发岗一面二面三面四面经验分享
- 来自IOS开发工程师的零基础自学HTML5经验分享
- 酒店无线覆盖工程经验分享
- 2016届阿里实习生java研发岗一面二面三面四面经验分享
- 腾讯电商设计师经验分享:百货大类页如何打动用户?
- 团队软件成为技术领导者--研发团队管理经验分享
- 腾讯游戏分享汇:天天飞车六大研发经验