语法
try {
// ...可能会出现异常的代码
} catch (Exception e1) {
// ...捕获异常后的处理,try后可以跟多个catch,每个对应一种异常类型
} finally {
// ...不管怎么样都会执行的代码
}
自定义异常类
自定义异常类通常通过继承Exception类来实现
public class 异常类测试 {
public static void main(String[] args) {
calculator cal = new calculator();
double a = 10;
double b = 0;
double c = -1;
try {
c = cal.div(a, b);
} catch (myexception mye) {
System.out.println(mye.getMessage());
} finally {
System.out.println("异常类测试完毕");
System.out.println("c的值为: " + c);
}
}
}
class myexception extends Exception {
//自定义异常类通常写两个构造函数
public myexception() {
}
public myexception(String info) {
super(info);
}
}
class calculator {
//可以抛出异常的方法
double div(double a, double b) throws myexception {
if (b == 0)
throw new myexception("出现异常!除数为0");
else
return a / b;
}
}
还有一种不写在try catch包围中的写法,将异常抛出,由上级方法来捕获(调用main方法的上级进行处理),这样的好处是代码比较简洁,而且出错时会显示出错的行号。
public class 异常类 {
public static void main(String[] args) throws myexception {
// TODO Auto-generated method stub
calculator cal = new calculator();
double a = 10;
double b = 0;
double c = -1;
c = cal.div(a, b);
}
}
169

被折叠的 条评论
为什么被折叠?



