目录
前言: 学习JAVA的第十七天(基础)-CSDN博客
异常
异常:
代表程序出现的问题
Exception:
叫做异常,代表程序可能出现的问题。我们通常会用Exception以及他的子类来封装程序出现的问题。
运行时异常:
RuntimeException及其子类 ,编译阶段不会出现异常提醒。运行时出现的异常
编译时异常:
编译阶段就会出现异常提醒的
异常的作用:
异常是用来查询bug的关键参考信息
异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况
异常处理方式:
- JVM默认的处理方式
- 捕获异常
- 抛出异常
JVM默认的处理方式
把异常的名称,异常原因及异常出现的位置等信息输出在了控制台
程序停止执行,下面的代码不会再执行了
捕获异常
格式:
java
try{
可能出现异常的代码;
}catch(异常类名 变量名){
异常的处理代码;
}finally{
//一定会执行,除非虚拟机停止运行
}
测试类
java
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
try{
//可能出异常的代码
System.out.println(arr[5]);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("索引越界了");//索引越界了
}
}
Throwable的成员方法
方法名 | 说明 |
---|---|
getMessage() | 返回Throwable的详细信息字符串 |
toString() | 返回此可抛出的简短描述 |
printStackTrace() | 把异常的错误信息输出在控制台 |
测试类
java
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
try{
System.out.println(arr[5]);
}catch(ArrayIndexOutOfBoundsException e){
// System.out.println(e.getMessage());//Index 5 out of bounds for length 5
// System.out.println(e.toString());//java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
//不会结束虚拟机
e.printStackTrace();
}
}
抛出异常
throws
写在方法定义处,表示声明一个异常告诉调用者,使用本方法可能会有哪些异常
格式:
java
public void 方法() throws 异常类名1,异常类名2 {
}
注意: 编译时异常必须要写,运行时异常可以不写
throw
写在方法内,结束方法。手动抛出异常对象,交给调用者方法中下面的代码不再执行了
格式:
java
public void 方法() {
throw...
}
自定义异常
步骤:
- 定义异常类
- 写继承关系
- 空参构造
- 带参构造
作用:
见名知意,让我们直截了当了解异常具体是什么。