5.异常

1.异常
1.1 什么是异常
Java中的错误可以分为两类:一类是编译时的错误,语法错误;一类是运行时的错误。
Java程序先编译再运行,将Java文件编译成计算机能够识别的的字节码文件
运行时错误可以顺利通过编译,语法没有问题,但是运行的时候报错
在Java中,错误也可以看成是一种对象,Java中有一组专门来描述各种不同错误的类,叫做异常类,Java结合异常类提供了处理错误的机制
步骤:当程序出现错误的时候,会常见一个包含错误信息的异常类的实例化对象,并将该对象交给系统,然后由系统转交给能够处理这个异常的代码进行处理
异常可以分为两类,包括Error和Exception,Error指系统错误,由JVM生成,程序无法处理,Exception指程序运行期间出现的错误,程序可以处理
1.2 异常的使用
try-catch,结合起来使用,用try来监听可能抛出异常的代码,一旦捕获异常,就生成异常对象交给catch里的代码来进行处理
除了使用try和catch关键字,还会用到finally关键字,无论程序是否抛出异常,finally里的代码块中的程序都会执行,finally一般跟在catch代码后面
try{
//可能会抛出异常的代码
}catch(异常对象){
//异常处理代码
}fianll{
//必须执行的代码
}
1.3 异常类
Java将运行时出现的错误全部封装成类,并且不是一个类,而是一组类,同时这些类之间是有层级关系的,处在最顶端的类是Throwable,是所有异常类的根节点
Throwable有两个直接子类:Error和Exception
Error:AWTError、IOError、OutOfMemoryError
Exception:IOException、RunTimeException
常用的异常类:
ArithmeticException:表示数学运算异常
ClassNotFoundException:表示类未定义异常
IllegalArgumentException:标识参数格式错误异常
ArrayIndexOutOfBoundsException:数组下标越界异常
NullPointerException:空指针异常
NoSuchMethodException:方法未定义异常
NumberFormatException:数值类型转换异常
1.4 throw和throws
throw和throws都是Java在处理异常时使用的关键字,都用来抛出异常
throw是主动抛出一个异常对象
java
Exception exception = new Exception("测试错误");
throw exception;
throws是用来声明方法可能会抛出一个异常
java
public static void test(int index) throws Exception{
int[] array = {1,2,3};
System.out.println(array[index]);
}
1.4 自定义异常类
在实际开发中,除了使用Java提供的异常类之外,也可以根据需求来自定义异常类
java
public calss MyNumberException extends Exception {
public MyNumberException(String error){
super(error);
}
}
public int add(Object object) throws MyNumberException{
if(!(object instanceof Integer)){
Stirng error = "传入的参数不是整数类型";
throw new MyNumberEception(error);
}else{
int num = (int)object;
return num++
}
}
评论