• java异常


     异常分为运行时异常和非运行时异常,所有异常类都会直接或者间接继承Exception

    • 对于非运行时异常,必须要对其进行处理。处理方式有两种:第一种是使用try...catch...finally进行捕获;第二种是在调用该会产生一场的方法所在的方法生命throws exception,例如
      IOException,FileNotFoundException
    • 运行时异常是不需要捕获的,运行时异常都会直接或间接地继承自RuntimeException,例如 NullPointerException

     自定义异常类
      我们一般都会直接继承Exception类,一般不会继承某个运行时的异常类

      

    public class MyException extends Exception
    {
        MyException()
        {
            super();
        }
    
        /**
         * ex为抛出的具体异常
         * @param ex
         */
        MyException(String ex)
        {
            super(ex);
        }
    }
    自定义异常类
    public class MyExceptionTest
    {
        public void isString(String s) throws MyException {
            if (null == s)
            {
                throw new MyException("param is null");
            }
        }
        public static void main(String[] args) throws MyException {
    
           MyExceptionTest exTest = new MyExceptionTest();
           try{
               exTest.isString(null);
           }
           catch (MyException ex)
           {
              ex.printStackTrace();
           }
           finally {
               System.out.println("入参为空");
           }
    
           // 直接输出异常
            new MyExceptionTest().isString(null);
    
        }
    }
    测试异常类

    异常原因:

    1、用户输入了非法数据。

    2、网络通信是连接中断

    3、JVM内存溢出

    我们可以使用多个catch块来捕获异常,这时需要将父类型的catch块放到子类型的catch块之后,这样才能保证后续的catch可能被执行,否则子类型的catch将永远无法到达,java编译器会报编译错误;如果多个catch块的异常类型是独立的(MyException, MyException2),那么谁前谁后都是可以的。

    如果try块中有retrun,则fianlly里面的代码会执行,如果执行system.exbit(0),那么就不会在执行finally块中的代码,因为会终止当前运行java虚拟机,程序会在虚拟机终止前结束执行

  • 相关阅读:
    如何在自定义端口上运行 Spring Boot 应用程序
    如何重新加载Spring Boot 上的更改,而无需重新启动服务器
    JavaConfig
    常用的linux指令
    接口绑定有几种实现方式,分别是怎么实现的?
    JDK,JRE,JVM三者关系
    final finally finalize区别
    execute,executeQuery,executeUpdate的区别是什么?
    相对于Statement,PreparedStatement的优点是什么?
    JDBC访问数据的基本步骤是什么
  • 原文地址:https://www.cnblogs.com/yanfeiguo1011/p/12500849.html
Copyright © 2020-2023  润新知