zoukankan      html  css  js  c++  java
  • 异常

    http://www.360doc.com/content/17/1115/09/35115976_703957459.shtml

    Java异常体系

    所有的异常类是从 java.lang.Exception 类继承的子类。

    Exception 类是 Throwable 类的子类。除了Exception类外,Throwable还有一个子类Error 。

    Java 程序通常不捕获错误。错误一般发生在严重故障时,它们在Java程序处理的范畴之外。

    Error 用来指示运行时环境发生的错误。

    例如,JVM 内存溢出。一般地,程序不会从错误中恢复。

    异常类有两个主要的子类:IOException 类和 RuntimeException 类。

    异常处理

    1、捕获异常

    try{
        //程序代码
    }catch(异常类型){
        //异常处理
    }finally{
        
    }
    
    • Catch 语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try 后面的 catch 块就会被检查。如果发生的异常包含在 catch 块中,异常会被传递到该 catch 块,这和传递一个参数到方法是一样。

    2、多重捕获块

    • 可以在 try 语句后面添加任意数量的 catch 块。
    • 如果保护代码中发生异常,异常被抛给第一个 catch 块。
    • 如果抛出异常的数据类型与 ExceptionType1 匹配,它在这里就会被捕获。
    • 如果不匹配,它会被传递给第二个 catch 块。如此,直到异常被捕获或者通过所有的 catch 块。

    3、throws/throw关键字

    如果一个方法没有捕获到一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。

    也可以使用 throw 关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。

    一个方法可以声明抛出多个异常,多个异常之间用逗号隔开。

    4、finally

    finally 关键字用来创建在 try 代码块后面执行的代码块。

    无论是否发生异常,finally 代码块中的代码总会被执行。

    在 finally 代码块中,可以运行清理类型等收尾善后性质的语句。

    常见异常

    1、NullPointerException

    当应用程序试图在需要对象的地方使用 null 时,抛出该异常

    2、IndexOutOfBoundsException

    指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。

    3、NumberFormatException

    当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。

    4、NegativeArraySizeException

    如果应用程序试图创建大小为负的数组,则抛出该异常。

    自定义异常

    • 所有异常都必须是 Throwable 的子类。
    • 如果希望写一个检查性异常类,则需要继承 Exception 类。
    • 如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。
  • 相关阅读:
    0705. Design HashSet (E)
    VMware简单使用
    Git笔记
    初识MyBatis
    数据库连接池配置 testOnBorrow
    Redis list操作命令
    文件/目录对比:diff命令
    可用于区块链的共识算法
    分布式一致性算法,你确定不了解一下?
    Jmeter文件下载测试
  • 原文地址:https://www.cnblogs.com/heibaimao123/p/13770602.html
Copyright © 2011-2022 走看看