1. 异常的概念和分类
程序在运行过程中出现的错误。
异常分为两大类:
error:错误,一般这个错误用程序解决不了。
Exception:异常(这一类的问题需要开发人员解决,在写程序时需要考虑这一类的错误)
Exception异常又分为两类:
运行时异常:ArithmeticException、NullPointerException、ArrayIndexOutOfBoundsException
在运行的过程中才会抛出的异常。
受检查异常(非运行时异常):ClassNotFoundException;
我在编译时就检查该异常是否需要处理。
2. 处理异常的5个关键字
try:来包含可能出现错误的代码块
catch:捕获在try中抛出的异常,并对该异常进行处理。
【注意点】:
可以通过catch捕获多个异常,catch块的编写顺序,从小到大。
Try关键字不能单独使用,要么和catch结合使用,要么和finally结合使用。
Finally:无论是否出现异常,均执行finally关键字包含的代码块。
(当有些代码必须需要执行的时候,那么就可以把这部分代码放入到finally语句块:比如说资源的关闭,数据库连接的关闭。
)
throws:声明异常,在方法的声明出使用,
作用:声明该方法可能会抛出的异常类信息。
/**
*@paramargs
*/
publicstaticvoid main(String[] args) {
ThrowsDemo01 t = new ThrowsDemo01();
try{
t.div(8,0);
}catch(ArithmeticException ex){
ex.printStackTrace();
}
}
publicint div(int num1,int num2)throws ArithmeticException{
int result = 0;
if(num2==0){
thrownew ArithmeticException();
}else{
result = num1/num2;
}
return result;
}
throw:抛出异常
try{
String str = null;
//System.out.println(str.length());
//throw关键字使用语法格式:throw 异常类对象;
//抛出空指针异常,显示的抛出
thrownew NullPointerException();
}catch(NullPointerException nullEx){
System.out.println("通过throw抛出了空指针异常....");
}
3. 异常类的两个常用的方法
printStackTrace();:打印输出方法栈的信息。(可以通过打印方法栈的信息来跟踪错误发生在哪里)
getMessage():获取的是异常提示信息
4. 自定义异常?
会编写自己的异常类,自己的异常类来封装底层异常。