JAVA——异常
父类Exception
子类RuntimeException 和 其他异常
-
Exception:叫做异常,代表程序可能会出现的问题,我们通常会用Exception以及它的子类来封装程序出现的问题
-
运行时异常:RuntimeException及其子类,编译阶段不会出现异常提醒,运行时出现的异常(如:数组越界异常)
-
编译时异常:编译阶段就会出现异常提醒的(如:日期解析错误)
-
如果try中没遇到问题,怎么执行:
会把try中的代码全部执行完毕,不执行catch里的代码
-
如果try中可能会遇到多个问题,怎么执行:
会写多个catch与之对应,父类异常需要写在下面
-
如果try中遇到的问题没有被捕获,怎么执行:
相当于try...catch白写了,当前异常会交给虚拟机处理
-
如果try中遇到了问题,那么try下面的其他代码还会执行吗
不会执行了,try中遇到问题,直接跳转到对应的catch,如果没有对应的catch与之匹配,则交给虚拟机处理
异常方法
public String getMessage() | 返回此throwable的详细消息字符串 |
---|---|
public String toString() | 返回此可抛出的简短描述 |
public void printStackTrace() | 在底层是利用System.err.Println进行输出,把异常的错误信息以红色字体输出在控制台 |
细节:仅仅是打印信息,不会停止程序运行
抛出处理
异常的三种处理方式
-
虚拟机默认处理异常的方式
把异常信息以红色字体打印在控制台,并结束
-
捕获:try...catch
一般用在调用出,能让代码继续往下运行
-
抛出:throw throws
在方法中,出现异常了 方法就没有继续运行下去的意义了,采取抛出处理,让该方法结束并告诉调用者出现的问题
自定义异常
-
自定义异常类
-
写继承关系
-
空参构造
-
带参构造
意义:就是为了让控制台的报错信息更加见名知意
标签:JAVA,子类,虚拟机,try,catch,执行,异常 From: https://www.cnblogs.com/longlonglong777/p/17744498.html