1. public class Test7 {
  2. //这是一个main方法,是程序的入口:
  3. public static void main(String[] args) throws Exception {
  4. //实现一个功能:两个数相除,当除数为0的时候,程序出现异常。
  5. /*try {
  6. devide();
  7. } catch (Exception e) {
  8. e.printStackTrace();
  9. }*/
  10. devide();
  11. }
  12. public static void devide() throws Exception {
  13. Scanner sc = new Scanner(System.in);
  14. System.out.println("请录入第一个数:");
  15. int num1 = sc.nextInt();
  16. System.out.println("请录入第二个数:");
  17. int num2 = sc.nextInt();
  18. if(num2 == 0 ){//除数为0 ,制造异常。
  19. //制造运行时异常:
  20. /*throw new RuntimeException();*/
  21. //制造检查异常:
  22. /*try {
  23. throw new Exception();
  24. } catch (Exception e) {
  25. e.printStackTrace();
  26. }*/
  27. throw new Exception();
  28. }else{
  29. System.out.println("商:"+num1/num2);
  30. }
  31. }
  32. }

总结:

throw和throws的区别:

  1. 位置不同:

throw:方法内部
throws: 方法的签名处,方法的声明处

  1. 内容不同:

throw+异常对象(检查异常,运行时异常)
throws+异常的类型(可以多个类型,用,拼接)

  1. 作用不同:

throw:异常出现的源头,制造异常。
throws:在方法的声明处,告诉方法的调用者,这个方法中可能会出现我声明的这些异常。然后调用者对这个异常进行处理:
要么自己处理要么再继续向外抛出异常