异常
异常体系结构
ERROR通常是程序逻辑引起的致命性的错误,程序应从逻辑角度尽量避免
Exception是可以被程序处理的,在程序中尽可能区处理这些异常
try、catch、finally、throw、throws,可以catch多个异常,但是一旦捕捉到相应的异常,将不再执行下一步且,所以,应从小到大范围编写
快捷键 Ctrl+Alt+T
public class Appliciation {
public static void main(String[] args) {
int a = 1;
int b = 0;
System.out.println(a/b);
try {
tryCatch.A();
}catch (Error e){
System.out.println("Error");
}catch (ArithmeticException e){
System.out.println("除数不可为零");
}catch (Exception e ){
System.out.println("Exception");
}finally {
System.out.println("finally");
}
}
自定义异常
在Java已经给出的官方文件Exception中,已经编辑好大部分的“异常情况”,但是当我们想自己定义某种情况为“异常”的时候,我们该怎么去定义呢。
第一步,定义一个类MyException作为自定义类,将该类继承Exception类。且在该类下,定义好出现异常时的打印信息
public class MyException extends java.lang.Exception {
public MyException( int a ) { //传递一个信息,a
this.detail = a;
}
//to String :异常的打印信息
@Override
public String toString() {
return "MyException{" +
"detail=" + detail +
'}';
}
}
第二部,在主程序类中,利用if语句,将有可能出现问题的情况抛出到MyException
public class Test {
//可能会存在异常的方法
static void test(int a) throws MyException {
System.out.println("传递的参数为:"+a);
if (a>10){
throw new MyException(a);
}
System.out.println("ok");
}
public static void main(String[] args) {
try {
test(12);
} catch (MyException e) {
System.out.println("MyException=>"+e);
}
}
}
第三步,将该抛出的部分,使用try,catch进行捕捉。
所举的例子为:将a>10的时候,作为异常抛出。