五个关键词

  1. package Exception.Demo01;
  2. //异常处理机制
  3. //抛出异常
  4. //捕获异常
  5. //关键词:try\catch\finally\throw\throws
  6. public class Demo01 {
  7. public static void main(String[] args) {
  8. int a = 10;
  9. int b = 0;
  10. // try{//try监控区域
  11. // System.out.println(a/b);
  12. // }catch (ArithmeticException e){//捕获异常
  13. // System.out.println("程序出现异常,变量b不能为0");
  14. // }finally {//程序无论有无异常,finally都会执行,finally不是必须,一般处理善后工作
  15. // System.out.println("finally");
  16. // }
  17. //要捕获多个异常,要从小到大地捕获
  18. try{//try监控区域
  19. System.out.println(a/b);
  20. }catch (Error e){
  21. }
  22. catch (Exception e){//捕获异常
  23. System.out.println("程序出现异常,变量b不能为0");
  24. }
  25. catch (Throwable e){
  26. } finally {//程序无论有无异常,finally都会执行,finally不是必须,一般处理善后工作
  27. System.out.println("finally");
  28. }
  29. }
  30. }

自定义异常

  1. package Exception.Demo02;
  2. //自定义异常类
  3. public class MyException extends Exception{
  4. //传递数字-->如果数字大于10,就抛出异常
  5. private int detail;
  6. public MyException(int a){
  7. this.detail = a;
  8. }
  9. //toString
  10. //fn+alt+insert
  11. @Override
  12. public String toString() {
  13. return "MyException{" +
  14. "detail=" + detail +
  15. '}';
  16. }
  17. }
  1. package Exception.Demo02;
  2. public class Test {
  3. //可能会存在异常的方法
  4. static void test(int a) throws MyException{
  5. if(a > 10) {
  6. throw new MyException(a);
  7. }
  8. System.out.println("OK");
  9. }
  10. public static void main(String[] args) {
  11. try{
  12. test(11);
  13. }catch (MyException e){
  14. System.out.println("MYException");
  15. }
  16. //MYException
  17. }
  18. }