package com.pyk.xl;
import java.util.*;
public class YC {
public static void main(String[] args) {
//3、谁调用这个方法,谁解决它抛出的异常
//可以自己解决,也可以继续往上甩锅
try{
devide();
}
catch(Exception e){
e.printStackTrace();
}
}
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,制造异常
//1、制造运行时异常:
/*throw new RuntimeException();*/
//2、制造检查异常:
/*try {
throw new Exception();
}catch(Exception e){
e.printStackTrace();
}*/
//3、
throw new Exception();
}else {
System.out.println("商:"+num1/num2);
}
}
}
总结:
throw和throws的区别:
(1)位置不同:
throw:方法内部
throws:方法的签名处,方法的声明处
(2)内容不同
throw+异常对象(检查异常,运行时异常)
throws+异常的类型(可以多个类型,用,拼接)
(3)作用不同:
throw:异常出现的源头,制造异常
throws:再方法的声明处,告诉方法的调用者,这个方法中可能会出现我声明的这些异常,然后调用者对这个异常进行处理,要么自己处理要么再继续向外抛出异常