Java异常处理机制
一、 使用try…catch捕获异常
Java异常处理机制为:抛出异常,捕捉异常,处理异常。 try…catch语法格式
在使用try…catch捕获处理异常时需要注意:
① 不要过度使用异常,不能使用异常处理机制来代替正常的流程控制语句
② 异常捕获时,一定要先捕获小异常,再捕获大异常。否则小异常将无法被捕获
③ 避免出现庞大的try块
④ 避免使用catch(Exception e){}
⑤ 不要忽略异常
Exception类的常用方法
① fillInStackTrace() 在异常堆栈跟踪中填充。
② getCause() 返回此 throwable 的 cause;如果 cause 不存在或未知,则返回null。
③ getLocalizedMessage() 创建此 throwable 的本地化描述。
④ getMessage() 返回此 throwable 的详细消息字符串。
⑤ getStackTrace() 提供编程访问由 printStackTrace() 输出的堆栈跟踪信息。
⑥ initCause(Throwable cause) 将此 throwable 的 cause 初始化为指定值。
⑦ printStackTrace() 将此 throwable 及其追踪输出 至标准错误流。
⑧ printStackTrace(PrintStream s) 将此 throwable 及其追踪输出到指定的输出流。
⑨ printStackTrace(PrintWriter s) 将此 throwable 及其追踪输出到指定的PrintWriter。
⑩ setStackTrace(StackTraceElement[] stackTrace) 设置将由 getStackTrace() 返回,并由 printStackTrace() 和 相关方法输出的堆栈跟踪元 素。
⑪ toString() 返回此 throwable 的简短描述。
二、 Java异常体系(错误和异常)
Java把所有的非正常情况分成两种:异常(Exception)和错误(Error),它们都继承Throwable父类。
Error错误,一般是指与虚拟机相关的问题,如系统崩溃、虚拟机错误、动态链接失败等,这种错误无法 恢复或不可能捕获,将导致应用程序中断。通常应用程序无法处理这些错误,因此应用程序不应该试图 使用catch块来捕获Error对象。在定义该方法时,也无须在其throws子句中声明该方法可能抛出Error及 其任何子类。