1.异常概述
异常是用来封装错误信息的一种机制;它由异常类型,提示信息,报错的行号提示三部分组成;编译不发生报错,但会中断运行。
2.常见异常类型
2.1数值异常:ArithmeticException
public class ChangJianYiChangDome1 {
public static void main(String[] args) {
int a=10;
int b=0;
int c=a/b;
//数值异常:ArithmeticException
}
}
2.2类型转换异常:ClassCastException
public class ChangJianYiChangDome1 {
public static void main(String[] args) {
String s="";
Integer i=515;
Object o = new Integer("1234");
String s1 = (String)o;
//类型转换异常:ClassCastException
}
}
2.3空指针异常:NullPointerException
public class ChangJianYiChangDome1 {
public static void main(String[] args) {
String s=null;
System.out.println(s.length());
//空指针异常:NullPointerException
}
}
2.4数组越界异常:ArrayIndexOutOfBoundsException
public class ChangJianYiChangDome1 {
public static void main(String[] args) {
int []arr=new int[5];
int n=arr[5];
//数组越界异常:ArrayIndexOutOfBoundsException
}
}
3.异常体系
4.异常处理
异常处理的作用是使程序可以继续运行下去,而不发生报错
4.1捕获异常(try{} catch(){]语句)
try{]中填写可能会发生异常的语句,catch(){}用来捕获出现的异常,用于处理善后工作,代码块中填写所捕获异常的类型,{}中填写对异常的处理
代码示例:
public class ChuLIDome {
public static void main(String[] args) {
int a = 10;
int b = 0;
String s=null;
try{
s.length();
int c = a / b;
}catch(NullPointerException r){
System.out.println("空指针异常");
}
System.out.println("very good");
}
}
4.2向上抛出(throws异常类型)
对于现在不想处理的异常或者无法处理的异常可以选择向上抛出,具体操作为:在方法上设置一个抛出的通道。
public class Throws1 {
public static void main(String[] args)throws ArithmeticException {
int a=10;
int b=0;
try{
int c=a/b;
}catch(ArithmeticException e){
System.out.println("数值异常。请重新输入");
}
System.out.println("完成");
}
}
//输出结果为:数值异常。请重新输入
完成