异常
1.小概要
1.Throwable有两个重要的子类:Exception(异常)和Error(错误),二者都是Java异常处理的重要子类
2.Exception分为RuntimeException(运行时异常)和非运行时异常
a)RuntimeException:运行时异常,除此之外的异常,其他的都叫做编译时异常
b)非运行时异常:编译时异常,在编译前处理,又称为受控异常或者受检异常
3.两个重要的方法:
a) getMessage():拿出构造方法中传入的参数、提示信息
b) printStackTrace():打印详细的信息
4.两种处理方式:
a)上抛:throws 没有能力处理,报给上一个调用它的方法,上一个也可以继续上抛,一直抛到main方法,
main方法再上抛就会抛给JVM(但是这只是把问题抛给了更高的一级,没有进行处理)
b)捕获异常:
try{}catch(){}
一旦异常发生,可以上抛,在没有到达main方法之前,可以捕捉并处理
try{
}catch(异常类型1 变量名1){
}catch(异常类型2 变量名2){
}catch(异常类型3 变量名3){
}
······
finally{
}
2.自定义异常
package com.HSY.Test;
public class Test extends Exception
{
public void a() throws Exception
{
throw new Exception();
}
public void a(String b)
{
}
}
package com.HSY.Q;
import com.HSY.Test.Test;
public class Q
{
public static void main(String[] args)
{
Test test = new Test();
test.a();
}
}
package com.HSY.Q;
import com.HSY.Test.Test;
public class Q
{
public static void main(String[] args)
{
Test test = new Test();
try {
test.a();
} catch (Exception e) {
e.printStackTrace();
}
}
}