捕获异常
try{
...
}catch(异常类型 自定义名字(例如:e)){
...
}finally{
...
}
注:
对于几个有继承关系的异常要捕获,则子类异常放前面,父类异常放后面,以免父类异常把子类的覆盖后,子类异常直接被当父类异常捕获
抛出异常
通过throws
为函数声明可能抛出异常,多个异常抛出用逗号隔开
自定义抛出
通过throw为单个语句抛出可能的异常,举例:
if(){
throw new Exception("wrong"); //单个语句抛出异常
}
输出堆栈错误
e.printStackTrace();
自定义异常
通过新建一个继承于Exception的异常类,然后在方法中用throw语句抛出,举例:
public class test {
public static void main(String[] args) throws MyException {
People p = new People();
p.setAge(-10);
}
}
class People {
private int age;
public void setAge(int age) throws MyException { //继承于Exception的异常需要抛出或捕获
if (age < 0) {
throw new MyException("年龄过小!"); //抛出异常
}
this.age = age;
}
}
class MyException extends Exception { //自定义异常
public MyException() {
}
public MyException(String esg) {
super(esg);
}
}
网友评论