JAVA异常(exception)处理

异常:程序运行的结果报告发生了算数异常,系统执行不下去,提前结束,这种情况就是所谓的异常。

一、捕捉异常的方法

1、try{}catch{}

try
{
   // 程序代码
}catch(ExceptionName e1)
{
   //Catch 块
}
//把可能发生异常的语句放在try { ... }中,然后使用catch捕获对应的Exception及其子类。

2、throws和throw

区别:throws用于方法的标签上,throw用于方法中

抛出异常思路:当不知道如何解决异常时候时候,由异常方法的上一级调用者解决,如果上一级无法解决,再往上抛,如果最终于main方法也无法解决,该异常由JVM处理

注意:使用throw hrows抛出异常之后,该异常希望它的调用者解决异常,它的调用者要么捕获异常,要么继续抛出。

二、声明自定义异常

步骤:

自定义的异常类要继承Exception;如果希望自定义运行期异常,则应该继承RuntimeException。继承时候需要一个无参构造器和有参(字符串参数的构造器),有参构造器中字符串就是异常的字符描述(getMessage()的返回值)。

(1)、创建自定义异常类

(2)、在方法中通过throw关键字抛出异常对象

(3)如果在当前抛出异常的法法中处理异常,可以使用try—catch语句块捕获并处理,否则在方法的声明除通过throw关键字指明抛出给方法调用者的异常,继续下一步异常。

三、异常链

Catch和throw配合使用,catch块捕获真实的异常,使用p.printStackTrace(PrintStream)方法把异常打印到指定输出流中,然后使用throw重新抛出一个异常,这种处理方式被称为异常转译。好处:对于普通用户来说,这些异常对他们来说没有任何帮助;对于恶意用户来说,把异常暴露出来不安全。

四、异常方法

下面的列表是 Throwable 类的主要方法:

序号 方法及说明 1 public String getMessage() 返回关于发生的异常的详细信息。这个消息在Throwable 类的构造函数中初始化了。 2 public Throwable getCause() 返回一个 Throwable 对象代表异常原因。 3 public String toString() 返回此 Throwable 的简短描述。 4 public void printStackTrace() 将此 Throwable 及其回溯打印到标准错误流。。 5 public StackTraceElement [] getStackTrace() 返回一个包含堆栈层次的数组。下标为0的元素代表栈顶,最后一个元素代表方法调用堆栈的栈底。 6 public Throwable fillInStackTrace() 用当前的调用栈层次填充Throwable 对象栈层次,添加到栈层次任何先前信息中。
经验分享 程序员 微信小程序 职场和发展