• 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虚拟机,程序会在虚拟机终止前结束执行

  • 相关阅读:
    js将UTC时间转化为当地时区时间 用JS将指定时间转化成用户当地时区的时间
    elementUI里面,用tabs组件导致浏览器卡死的问题
    根据数组对象中的属性值删除对象
    js货币金额正则表达式
    vue elementui input不能输入的问题
    vue+elementui--$message提示框被dialog遮罩层挡住问题解决
    Oracle日期函数
    plsql查询报错:Dynamic Performamnce Tables not accessible
    Oracle rownum和rowid的区别
    Oracle通过序列实现主键自增长
  • 原文地址:https://www.cnblogs.com/yanfeiguo1011/p/12500849.html
Copyright © 2020-2023  润新知