异常

  • Post author:
  • Post category:其他




异常



概述

就是出现了不正常的情况



异常结构

在这里插入图片描述



JVM的默认处理方案

如果程序出现问题,我们没有做任何处理,最终JVM会做默认的处理:

  • 把异常的名称、异常原因及异常出现的位置等信息输出在控制台
  • 程序停止执行



异常处理



try…catch…

格式:


try {


//可能出现异常的代码;

} catch(异常类名 变量名) {


//异常处理代码;

}


执行流程:

程序从try里面的代码开始执行

出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统

当Java运行时系统接收到异常对象时,会到catch中去找匹配的异常类,找到后进行异常的处理

执行完毕后,程序还可以继续往下执行



try…catch…finally

try {


//可能出现异常的代码;

} catch(异常类名1 变量名1) {


//异常处理代码;

} catch(异常类名2 变量名2) {


//异常处理代码;

}…

finally {


//异常处理出口(无论是否发生异常,finally必然执行)

}



Throwable



成员方法

方法名 说明
public String getMessage() 返回此throwable的详细消息字符串
public String toString() 返回此可抛出的简短描述
public void printStackTrace() 把异常的错误信息输出在控制台



throws



异常是否抛出

如果是参数导致异常,应该通过throws将异常抛出



格式

返回值 方法名()throws 异常类名{}



注意

这个格式是

跟在方法的括号后面的


  • 编译时异常必须要进行处理

    ,两种处理方案:try…catch…或者throws,如果采用throws这种方案,将来谁调用谁处理

  • 运行时异常可以不处理

    ,出现问题后,需要我们回来修改代码



自定义异常



格式

public class 异常类名 extends Exception {


无参构造

带参构造

}



不同异常类型的自定义异常

  • 编写一个类,继承Exception,并重写一参构造方法,即可完成自定义受检异常

    -编 写一个类,继承RuntimeException,并重写一参构造方法,即可完成自定义运行时异常



throws与throw的区别


throws

throw
用在方法声明后面,跟的是异常类名 用在方法体内,跟的是异常对象名
表示抛出异常,由该方法的调用者来处理 表示抛出异常,由方法体内的语句处理
表示出现异常的一种可能性,并不一定会发生这些异常 执行throw一定抛出了某种异常



版权声明:本文为weixin_49227264原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。