zoukankan      html  css  js  c++  java
  • Java 读书笔记 (十五) Java 异常处理

    捕获异常

    使用try 和catch关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方。

    try/catch 代码块中的代码称为保护代码 ,使用try/catch的语法如下:

    1 try 
    2 {
    3    //程序代码
    4 } catch(ExceptionName e1)
    5 {
    6    //Catch块
    7 }

    Catch语句包含要捕获异常类型的声明,当保护代码块中发生一个异常时,try后面的catch块就会被检查。

    如果发生的异常包含在catch块中,异常会被传递到该catch块,这和传递一个参数到方法是一样。

    实例:

    下面的例子中声明有两个元素的一个数组,当代码试图访问数组的第三个元素的时候就会抛出一个异常.

     1 //文件名: ExcepTest.java
     2 import java.io.*;
     3 public class ExcepTest{
     4     
     5     public static void main(String args[]){
     6         try{
     7              int a[] = new int[2];
     8              System.out.println("Access element three :"+a[3]);
     9          } catch (ArrayIndexOutofBoundsException e){
    10                System.out.println("Exception thrown :"+e);
    11          }
    12          System.out.println("Out of the block");
    13      }
    14 }
    15 
    16 
    17 /*以上代码编译执行输出结果:
    18  Exception thrown :java.lang.ArrayIndexOutOfBoundsException: 3
    19  Out of the block

    多重捕获块

    一个try代码块后面跟随多个catch代码块的情况就叫多重捕获。

    try{
         //程序代码
    } catch(异常类型1  异常的变量名1){
         //程序代码
    } catch(异常类型2  异常的变量名2){
         //程序代码
    } catch(异常类型3  异常的变量名3){
         //程序代码
    }

    可以在try语句后面添加任意数量的catch块。

    如果保护代码中发生异常,异常被抛给第一个catch块。

    如果抛出异常的数据类型与ExceptionType1匹配,它在这里就会被捕获。

    如果不匹配,它会被传递给第二个catch块。

    如此,直到异常被捕获或者通过所有的catch块。


    finally 关键字

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

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

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

    finally 代码块出现在catch代码块最后,语法如下 :

    // finally 在try 语句中是不是相当于if...else语句中的else?

    1 try{
    2       //程序代码
    3 }catch(异常类型1  异常的变量名1){
    4      //程序代码
    5 }catch(异常类型2  异常的变量名2) {
    6   //程序代码
    7 } finally{
    8    //程序代码 
    9 }

    注意事项:

    • catch不能独立于try 存在
    • 在try/catch后面添加finally 块并非强制性要求的
    • try代码后不能既没catch块也没finally 块
    • try,catch,finally 块之间不能添加任何代码

    // 是不是try后面可以直接跟finally,没有catch?

    通用异常

    在Java中定义了两种类型的异常和错误。

    • JVM(Java虚拟机)异常 :由JVN抛出的异常或错误。例如: NullPointerException类,ArrayIndexOutOfBoundsException类,ClassCastException类
    • 程序级异常: 由程序或者API程序抛出的异常。例如IIIegalArgumentException类,IIIegalStateException类.
  • 相关阅读:
    vue2.0开发聊天程序(八) 初步完成
    王下邀月熊_Chevalier的前端每周清单系列文章索引
    将HTML页面转换为PDF文件并导出
    二维码活码管理系统
    前端眼里的docker
    这些好玩的例子,希望你也能喜欢
    如何实现swipe、tap、longTap等自定义事件
    基于 HTML5 Canvas 的交互式地铁线路图
    【php学习】时间函数
    页面瀑布流布局的实现 javascript+css
  • 原文地址:https://www.cnblogs.com/cheese320/p/8110371.html
Copyright © 2011-2022 走看看