public class Test7 {//这是一个main方法,是程序的入口:public static void main(String[] args) throws Exception {//实现一个功能:两个数相除,当除数为0的时候,程序出现异常。/*try {devide();} catch (Exception e) {e.printStackTrace();}*/devide();}public static void devide() throws Exception {Scanner sc = new Scanner(System.in);System.out.println("请录入第一个数:");int num1 = sc.nextInt();System.out.println("请录入第二个数:");int num2 = sc.nextInt();if(num2 == 0 ){//除数为0 ,制造异常。//制造运行时异常:/*throw new RuntimeException();*///制造检查异常:/*try {throw new Exception();} catch (Exception e) {e.printStackTrace();}*/throw new Exception();}else{System.out.println("商:"+num1/num2);}}}
总结:
throw和throws的区别:
- 位置不同:
throw:方法内部
throws: 方法的签名处,方法的声明处
- 内容不同:
throw+异常对象(检查异常,运行时异常)
throws+异常的类型(可以多个类型,用,拼接)
- 作用不同:
throw:异常出现的源头,制造异常。
throws:在方法的声明处,告诉方法的调用者,这个方法中可能会出现我声明的这些异常。然后调用者对这个异常进行处理:
要么自己处理要么再继续向外抛出异常
