您的位置:首页 > 其它

一秒钟法则:来自腾讯无线研发的经验分享 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: