异常
异常的分类:

异常的作用:
作用一:异常是用来查询bug的关键参考信息
作用二∶异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况
异常的处理方式
JVM默认处理异常的方式
- 把异常的名称,异常原因及异常出现的位置等信息输出在控制台
- 程序停止执行,异常下面的代码不会再执行了
try-catch处理异常
try-catch:提前预判程序中哪个地方可能会出现某种错误,出现后执行catch中的代码,并且程序可以继续运行
如果try中没有遇到问题,会将try中的所有代码全部执行完毕,并且跳过catch中代码
如果try中可能遇到多个问题,可以写多个catch与之对应,并且父类异常应该写在下面
如果try中遇到的问题没有被捕获,相当于try-catch白写了,异常交给虚拟机处理
如果try中遇到了问题,try下面其他的代码不会继续执行,直接跳转到对应的catch,此时try中后面的代码不会运行,但try-catch后面的其它代码会继续运行;
如果没有对应的catch,则交给虚拟机处理,此时后面的其它代码也不会运行
throws和throw
throws:写在方法定义处,表示声明一个异常,告诉调用者,使用本方法可能会有哪些异常,其中编译时异常必须要写,运行时异常可以不写
1 | public void 方法() throws 异常类名1,异常类名2...{ |
throw:写在方法内,结束方法,手动抛出异常对象,交给调用者,并且方法中下面的代码不再运行
1 | public void 方法(){ |
三种异常处理方式的对比
1.虚拟机默认处理异常的方式
把异常信息以红色字体打印在控制台,并结束程序
2.捕获:try…catch
一般用在调用处,能让代码继续往下运行。
3.抛出: throw throws
在方法中,出现异常了。
方法就没有继续运行下去的意义了,采取抛出处理。
让该方法结束运行并告诉调用者出现了问题。
自定义异常
定义异常类,名字格式:当前异常的名字+Exception
写继承关系,由于参数错误导致的问题继承RuntimeException,提醒程序员检查本地信息继承Exception
空参构造,ctrl+alt+insert
带参构造,ctrl+alt+insert
让控制台的报错信息更加见名知意,自定义异常类就是为了这个名字
异常的常见方法:
public string getMessage() 返回此throwable 的详细消息字符串
public String toString() 返回此可抛出的简短描述
这两个方法要用变量存储返回值后再打印在控制台
public void printstackTrace() 把异常的错误信息输出在控制台
只是打印消息,不会终止程序运行
//System.err.println(“something”)
以红色字体将消息打印在控制台