- 目的
- 异常的分类
- 父类与子类的异常
- 自定义异常
- try catch fianlly 与 throws
个人理解,异常是为了处理实际出现意外状况时,给用户或其他人员的一种友好提示性信息。
异常的分类这个不重要,通常优先捕获较小的异常对象,对于非Java提出的异常,用户可以自定义异常
父类与子类的异常子类抛出的异常范围不能大于父类的异常范围。
自定义异常继承Exception或者RuntimeException,需要重新修改serialVersionUID唯一标识符号
package com.atguigu.java;
public class MyException extends Exception{
static final long serialVersionUID = -3387516993115629948L;
public MyException(){
super();
}
public MyException(String str){
super(str);
}
}
try catch fianlly 与 throws
throws只是单纯抛出异常,try catch 则会进行相应处理。对于多个throws的相同子类型的异常,可以合并后由try catch处理。
throw与throws,throw是抛出具体的异常对象,throws是将该异常抛向向调用者
public class StudentTest {
public static void main(String[] args) {
Student student = new Student();
try {
student.setOld(-2);
System.out.println(student.old);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
class Student{
int old;
public void setOld(int old) throws Exception {
if(old>0){
this.old = old;
}else {
throw new MyException("年龄必须为正数哦");
}
}
}



