java的异常分为两种主要类型,分别是checked异常和unchecked异常。checked异常是可以在执行过程中恢复的,unchecked异常是无法处理的外界错误。
checked异常:比如文件不存在,链接中断等不受程序控制的异常,表示无效。这类异常必须在代码中显式地处理,用try-catch或者throws。该类异常继承自java.lang.Exception.
unchecked异常:表示程序的逻辑错误。该类异常继承自java.lang.RuntimeException,如illegalArguementException。(不需要显示处理)
1.举例说明:
checked异常:
public static void main(String[] args}{
File f=new File("a.txt");
try{
FileReader r = new FileReader(f);
BufferedReader bf = new BufferReader(f);
bf.readline();
} catch(IOException e){
System.out.println("find a IOException")
}
在编译阶段会检查出可能会出现异常,所以需要try-catch模块或者throws方法抛出异常。
2. 我们也可以自己定义异常,来满足特殊需求。
public class InvalidArguementException extends Exception{
public InvalidArguementException (String s){
super(s);
}
}
public static void main(String[] args}{
if(!testArguement(arg1,arg2))
throws new InvalidArguementException("Invalid Arguements!")
}