异常
异常的类型 不会报错 但是运行的时候出错了
public class demo1 {
public static void main(String[] args) {
new demo1().a();
System.out.println(1/0);
}
public void a(){
b();
}
public void b(){
a();
}
}
检查项异常 比如文件不存在 在编译的时候就异常
运行时异常 在编译的时候看不到 在运行异常
错误 这是在设计之初就出现的错误 这不是程序员控制的范围
异常处理框架
error
exception
自定义异常
代码
自定义
继承Exception 然后写一个构造器把a放到detail里 重写toString方法(用来打印异常错误信息)
输出为 “MyException{” + “detail=” + detail + ‘}’; 用于对下面主程序的a操作报错输出
package JAVA.exception.demo2;
public class MyException extends Exception{
//传递数据 >10 ;
private int detail;
public MyException(int a) {
this.detail = a;
}
//toString的打印信息
@Override
public String toString() {
return "MyException{" + "detail=" + detail + '}';
}
}
使用自定义异常
这里异常的抛出步骤是 9行出现异常 10行用throw把异常抛到5行 然后17行调用这个方法在20行处理这个异常
package JAVA.exception.demo2;
public class test {
//可能会存在异常的方法
static void test(int a) throws MyException{
System.out.println("传递的参数为"+a);
if(a>10){
throw new MyException(a);//抛出 或者在下一句用catch处理 这里选择抛到方法 throws处理
}
System.out.println("ok");
}
public static void main(String[] args) {
try {
test(111);
} catch (MyException e) {
//增加一些处理异常的代码块 比如说把a改成10
System.out.println("MyException=====>"+e);
}
}
}