4、异常

一、异常:指程序运行时出现的不正常情况,是对问题的描述,将问题进行对象的封装。

  1、在Java中错误分为两种情况:严重的(Error)、非严重的(Exception

      Error:Java通过Error类进行描述,一般不编写针对性的代码对其进行处理

      Exception:Java通过Exception类进行描述,可以使用针对性的处理方式进行处理

  2、在Java中异常被分为两大类:

      运行异常(RuntimeException):RuntimeException直接继承Exception类,Java中所有的运行时异常都会直接或间接的继承RuntimeException类。

      非运行异常(检测时)异常:Java中凡是继承Exception而不继承RuntimeException的类都是非运行异常

二、异常处理:

  1、对于非运行时异常,必须要对其进行处理,处理方式有两种:

    a)try……catch……finally进行捕获

    b)在调用会产生异常的方法所在的地方处声明(throws Exception

  2、对于运行时异常我们可以对其处理,也可以不对其进行处理。方法同上。 

         /***********************************************************************************************************/

    public static void div(int x, int y){
      try{
        /*
        * try里放可能会出现异常的代码
        */
        int i = x / y;
         System.out.println("i=" + i);
      }catch(Exception e){
        System.out.println("出错了。。。" + e.getMessage());
        System.out.println(e.toString());
        e.printStackTrace();
      }finally{
        /*
        * catch里面的语句执行完后执行finally里的语句
        * finally里面通常用来执行始终要运行的代码 比如关闭资源
        */
        System.out.println("finally里面的语句!!!");
      }
      System.out.println("over---div");
    }

           /***********************************************************************************************************/

    public static void div1(int x, int y) throws Exception {

      if(y == 0){
        throw new Exception("除数不能为0");// 抛出异常,那么方法上必须通过throws关键字声明异常 注意:抛异常的动作可以放在方法体的任意位置
      }
      int i = x / y;
      System.out.println("i=" + i);
    }

三、自定义异常:

           /*项目中会出现特有的问题,而这些问题并未被Java所描述并封装对象,所以对这些特有的问题可以按照Java的对问题封装的思想,将特有的问题进行自定义的异常封装。通常继承Exception,这个类就是一个自定义异常类*/

    public class MyException1 extends Exception {

        private String errorCode;// 错误代码
        public MyException1(){
      }
      public MyException1(String message){
        super(message);//调用Exception里面的带参构造器
      }
      public MyException1(String message, String errorCode){
        super(message);
        this.errorCode = errorCode;
      }

      public String getErrorCode() {

        return errorCode;
      }

      public void setErrorCode(String errorCode) {
        this.errorCode = errorCode;
      }
    }

原文地址:https://www.cnblogs.com/czj-zhm/p/5836565.html