zoukankan      html  css  js  c++  java
  • JAVA基础复习异常处理

    异常处理

    1、异常处理方式

    • try-catch方式

    • throws方式

      throws + 异常类型,写在方法的声明处。指明此方法执行时,可能会抛出的异常类型。一旦当方法体执行时出现异常,就会在异常处生成一个异常类的对象,此对象满足throws异常类型时,就会被抛出。异常后续的代码就不再执行。

    2、两种异常处理方式区别

    • try-catch-finally

      真正的将异常给处理掉了。

    • throws

      只是将异常抛给了方法的调用者,并没有真正的将异常处理掉。

    3、两种异常处理方式的选择

    1. 如果父类中被重写的方法没有用throws方式处理异常,则子类重写的方法也不能用throws处理异常,如果子类重写的方法中有异常,必须使用try-catch-finally的方式处理。
    2. 执行的方法a()中,先后调用了另外的几个方法,这几个方法时通过递进关系执行的。建议这几个方法的异常使用throws方式进行处理,而执行的方法a()可以使用try-catch-finally的方式处理。

    4、手动抛出异常对象

    • 手动抛出Exception类型异常

      方法中手动抛出Exception类型异常,则方法中必须使用throws方式处理异常且调用者必须对该异常进行处理,使用try-catch或者throws继续抛出此异常。

    • 手动抛出RuntimeException类型异常

      调用者不用对该运行时异常进行处理,程序运行时遇到异常后,自动抛出到控制台。

      /**
       * 手动抛出异常
       */
      public class testException {
          public static void main(String[] args) {
              Student student = new Student();
              try {
                  student.addStudent(-1);
              } catch (Exception e) {
                  //输出异常处理信息
                  System.out.println(e.getMessage());
              }
          }
      }
      /**
       * 手动抛出Exception异常
       */
      class Student {
          private Integer age;
          public void addStudent(Integer age) throws Exception {
              if (age > 0) {
                  this.age = age;
              } else {
                  throw new Exception("年龄必须大于0");
              }
          }
      }
      
      class testException2 {
          public static void main(String[] args) {
              Student2 student = new Student2();
              student.addStudent(-1);
          }
      }
      /**
       * 手动抛出RuntimeException异常
       */
      class Student2 {
          private Integer age;
          public void addStudent(Integer age) {
              if (age > 0) {
                  this.age = age;
              } else {
                  throw new RuntimeException("年龄必须大于0");
              }
          }
      }
      

    5、自定义异常

    自定义异常步骤:

    1. 继承于现有的异常类:RuntimeException、Exception等;
    2. 提供全局常量;
    3. 提供重载的构造器。
    /**
     * 自定义异常,继承Exception
     */
    public class MyException extends Exception {
        //网络通信传输时,标识该类唯一
        static final long serialVersionUID = -3387516993124229948L;
    
        public MyException() {
        }
    
        public MyException(String msg) {
            //调用父类的构造方法处理
            super(msg);
        }
    }
    
  • 相关阅读:
    Zephyr网络协议
    Zephyr启动过程与中断响应
    CortexM处理器的一些特性记录
    qemu 使用记录
    Request与Response详解
    http请求头(Header)参数详解
    win10java环境变量配置
    逻辑运算符:与、或、非、异或
    SQL注入相关知识整理
    网页是否存在SQL注入的简单判断
  • 原文地址:https://www.cnblogs.com/elnimo/p/15758226.html
Copyright © 2011-2022 走看看