* 异常的处理,在有的时候,没有权限使用try...catch去处理异常
* 只能使用throws,抛出异常
*
*
* 针对抛出异常,
* 编译时期异常和运行时期异常的使用:
*
* 编译时期:调用者必须处理的;
* 运行时期异常:不需要处理
*
*
* 抛出:
* 面试题:
*
* throws和throw的区别?
*
* 处理异常的时候:开发中使用try...catch...finally:标准格式
* 自己在写程序过程中,为了处理方便:throws
* 1)位置不同
* throws是在方法声明上抛出
* throw:是在方法体(语句)中抛出
* 2)两个关键字后面的跟的类型不一样
* throws后面跟的是异常类名,而且可以跟多个异常类名,中间使用逗号隔开;
* throw后面跟的异常对象名(匿名对象),throw new xxxException();不能跟多个异常对象,只能跟一个!
*
* 3)throws表示产生异常的一种可能性!
* throw:表示产生异常的一种肯定性!
*
* 4)throws抛出的异常由他的调用者进行处理
* throw:方法中的语句进处理(加入一些逻辑判断)
public class ExceptionDemo {
public static void main(String[] args) {
System.out.println("今天天气不错");
//调用者必须显示处理
try {
method1() ;
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("打起精神...");
//调用者不需要显示处理
method2() ;
}
private static void method2() throws ArithmeticException {
int a = 10 ;
int b = 0 ;
if(b!=0) {
System.out.println(a/b);//运行时期异常
}else {
throw new ArithmeticException() ; //跟的异常对象名:具体异常具体对待
//下面错误的
//throw new ArithmeticException(),new ArrayIndexOutOfBoundsException();
}
}