zoukankan      html  css  js  c++  java
  • exception(异常)

      throw关键字
        作用:
            可以使用throw关键字在指定的方法中抛出指定的异常
        使用格式:
            throw new xxxException("异常产生的原因");
        注意:
            1.throw关键字必须写在方法的内部
            2.throw关键字后边new的对象必须是Exception或者Exception的子类对象
            3.throw关键字抛出指定的异常对象,我们就必须处理这个异常对象
                throw关键字后边创建的是RuntimeException或者是 RuntimeException的子类对象,我们可以不处理,默认交给JVM处理(打印异常对象,中断程序)
                throw关键字后边创建的是编译异常(写代码的时候报错),我们就必须处理这个异常,要么throws,要么try...catch

     throws关键字:异常处理的第一种方式,交给别人处理
        作用:
            当方法内部抛出异常对象的时候,那么我们就必须处理这个异常对象
            可以使用throws关键字处理异常对象,会把异常对象声明抛出给方法的调用者处理(自己不处理,给别人处理),最终交给JVM处理-->中断处理
        使用格式:在方法声明时使用
            修饰符 返回值类型 方法名(参数列表) throws AAAExcepiton,BBBExcepiton...{
                throw new AAAExcepiton("产生原因");
                throw new BBBExcepiton("产生原因");
                ...
            }
         注意:
            1.throws关键字必须写在方法声明处
            2.throws关键字后边声明的异常必须是Exception或者是Exception的子类
            3.方法内部如果抛出了多个异常对象,那么throws后边必须也声明多个异常
                如果抛出的多个异常对象有子父类关系,那么直接声明父类异常即可
            4.调用了一个声明抛出异常的方法,我们就必须的处理声明的异常
                要么继续使用throws声明抛出,交给方法的调用者处理,最终交给JVM
                要么try...catch自己处理异常

    try...catch:异常处理的第二种方式,自己处理异常
        格式:
            try{
                可能产生异常的代码
            }catch(定义一个异常的变量,用来接收try中抛出的异常对象){
                异常的处理逻辑,异常异常对象之后,怎么处理异常对象
                一般在工作中,会把异常的信息记录到一个日志中
            }
            ...
            catch(异常类名 变量名){

            }
        注意:
            1.try中可能会抛出多个异常对象,那么就可以使用多个catch来处理这些异常对象
            2.如果try中产生了异常,那么就会执行catch中的异常处理逻辑,执行完毕catch中的处理逻辑,继续执行try...catch之后的代码
              如果try中没有产生异常,那么就不会执行catch中异常的处理逻辑,执行完try中的代码,继续执行try...catch之后的代码

        finally代码块
         格式:
            try{
                可能产生异常的代码
            }catch(定义一个异常的变量,用来接收try中抛出的异常对象){
                异常的处理逻辑,异常异常对象之后,怎么处理异常对象
                一般在工作中,会把异常的信息记录到一个日志中
            }
            ...
            catch(异常类名 变量名){

            }finally{
                无论是否出现异常都会执行
            }
         注意:
            1.finally不能单独使用,必须和try一起使用
            2.finally一般用于资源释放(资源回收),无论程序是否出现异常,最后都要资源释放(IO)

    Throwable类中定义了3个异常处理的方法
                     String getMessage() 返回此 throwable 的简短描述。
                     String toString() 返回此 throwable 的详细消息字符串。
                     void printStackTrace()  JVM打印异常对象,默认此方法,打印的异常信息是最全面的


    **异常类如何定义:**

    1. 自定义一个编译期异常: 自定义类 并继承于`java.lang.Exception`。
    2. 自定义一个运行时期的异常类:自定义类 并继承于`java.lang.RuntimeException`。

  • 相关阅读:
    UVA 11174 Stand in a Line,UVA 1436 Counting heaps —— (组合数的好题)
    UVA 1393 Highways,UVA 12075 Counting Triangles —— (组合数,dp)
    【Same Tree】cpp
    【Recover Binary Search Tree】cpp
    【Binary Tree Zigzag Level Order Traversal】cpp
    【Binary Tree Level Order Traversal II 】cpp
    【Binary Tree Level Order Traversal】cpp
    【Binary Tree Post order Traversal】cpp
    【Binary Tree Inorder Traversal】cpp
    【Binary Tree Preorder Traversal】cpp
  • 原文地址:https://www.cnblogs.com/lee18/p/11524979.html
Copyright © 2011-2022 走看看