您的位置:首页 > 编程语言 > Java开发

thinking in java第七天

2015-04-14 12:04 176 查看

第十二章 异常处理

try {
// Code that might generate exceptions
} catch ( e) {
// TODO: handle exception
}

throw new NullPointerException("");在使用new 创建了异常对象之后,此对象的引用将传给throw
system.err.println();将错误发送给标准错误流,不会随System.out一起被重定向
Throwable类声明的printStackTrace():打印从方法调用处直到异常抛出处的方法调用序列
异常与记录日志:可以使用java.util.logging,也可以使用Apach下的common-logging.jar
自定义异常,通常都是直接继承某个异常类,重写构造器方法,覆盖getMessage方法
异常说明:即方法后面使用了throws,后面接一个所有潜在的异常类型的列表
getStackTrace()返回一个由栈轨迹中的元素构成的数组
重新抛出异常

会把异常抛出上一级的环境中的异常处理程序,通一个try的后续catch子句将被忽略(摩根的笔试题)

当抛出同一个异常时,fillInstackTrace()就成了异常的新发生地
当抛出的是不同的异常时,就相当于使用了fillInStackTrace(),原来异常发生点的信息会丢失

异常链
Throwable这个java类被用来表示任何可以作为异常被抛出的类

Error:表示编译时和系统错误
Exception:是可以被抛出的基本类型
并非所有的异常包都是从java.lang包里定义的,如IOException

RuntimeException:不需要再异常说明中声明方法将抛出该异常

如果RuntimeException没有被捕获而直达main(),那么在程序退出前将调用异常的printStackTrace()方法
只能在代码中忽略RuntimeException及其子类

finally:必然执行块

当涉及break,continue,return语句的时候,finally子句也会得到执行
当涉及到两种情况时,会导致异常丢失

前一个异常还没被处理就在finally中抛出下一个异常
直接在finally中return,这将屏蔽所以异常处理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: