• [Java] 异常处理


    异常处理方式:

    1. try-catch-finally

      try{

        可能发生异常的代码

      }

      catch(异常类型1 异常名1){

        处理异常的程序代码

      }

      catch(异常类型2 异常名2){

        处理异常的程序代码

      }

      ...

      finally{

        前面无法处理的异常,在此解决

      }

    2. throws:在方法中声明抛出异常

    返回值 方法名() throws 异常1,异常2,...

    eg:

    import java.io.*;

    public class Example{

      public static void main(String[] args){

        try{

          out(); 

        }catch(ArithmeticException e){

          System.out.print("除数不能是0");

        }

      }

      public static void out() throws ArithmeticException {

        int i = 9/0;

        System.out.print(i);

      }

    }

    3. throw: 抛出异常

    import java.io.*;

    public class Example{

      static int k = 0;

      public static void main(String[] args){

        try{

          out(); 

        }catch(ArithmeticException e){

          System.out.print("除数不能是0");

        }

      }

      public static void out() throws ArithmeticException {

        if (k == 0)  throw new ArithmeticException();

        int i = 9/k;

        System.out.print(i);

      }

    }

    4. throw 和 throws 区别

    throws 是声明可能抛出异常,而throw 是一定抛出异常

    throws用于方法头部,而throw 用于方法体中

    5. 自定义异常

    Java 允许程序员自定义异常类以处理各种系统未定义的异常。程序员可通过继承Exception 或其子类(比如IOException)来创建自己的异常类。

    eg:

    import java.io.*;

    public class Example{

      static int k = 0;

      public static void main(String[] args){

        try{

          if(k == 0)  throw new MyException();

          int i = 5 / k;

        }catch(MyException e){

          System.out.print(e.toString());

        }

      }

      class MyException extends Exception{

        public MyException(){

          super("除数不能是0");

        }

        public MyException(String str){

          super(str);

        }

      }

    }

  • 相关阅读:
    平衡二叉树
    二叉树的深度
    数字在升序数组中出现的次数
    美国最受雇主欢迎的十大编程语言
    重学数据结构(五、串)
    重学数据结构(四、数组和广义表)
    100个高频Spring面试题
    重学数据结构(三、队列)
    重学数据结构(二、栈)
    Java学习之jackson篇
  • 原文地址:https://www.cnblogs.com/feifeidxl/p/4741603.html
Copyright © 2020-2023  润新知