博客
关于我
异常处理Java-----学习笔记整理
阅读量:303 次
发布时间:2019-03-03

本文共 1315 字,大约阅读时间需要 4 分钟。

Java异常处理详解

一、异常概述

错误可以产生于程序员无法预料到的各种情况或是由于超出程序员控制之外的环境因素。在Java中,程序运行时产生的一些错误称之为异常。异常是一个程序执行期间发生的事件,中断了正在执行的程序的正常指令流。

二、错误(Error)

错误不是异常,是脱离程序员控制的问题。Throwable类的子类包括Exception和Error。Throwable的两大子类是Exception和Error。Exception和Error的主要区别在于,Error表示系统内部错误或资源耗尽,这类错误比较严重,通常无法通过catch语句来处理。

三、捕捉异常

try、catch、finally是Java中用于处理异常的关键语句。try用于捕获可能发生异常的Java语句,catch用于处理捕获的异常,finally用于处理异常信息(如资源释放)。通过try-catch语句可以捕获并处理异常,确保程序的正常运行。

四、Java中常见的异常

Java程序运行过程中可能会抛出各种异常。常见的异常包括ClassCastException、ClassNotFountException、ArithmeticException、ArrayIndexOutOfBoundsException、ArrayStoreException、SQLException、NullPointerException、NoSuchfieldException、NoSuchMethodException、NumberFormatException、NegativeArraySizeException、StringIndexOutOfBoundsException、IOException、IllegalAccessException等。

五、自定义异常

自定义异常的步骤如下:

  • 创建自定义异常类
  • 在方法中通过throw关键字抛出异常
  • 如果当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理
  • 捕获并处理异常,否则在方法的声明处通过throws关键字指明要抛出的异常
  • 在出现异常的方法的调用者中捕获并处理异常
  • 六、使用异常的原则

  • 避免过多使用异常会给系统增加负担
  • 在方法中使用try-catch捕获异常时,要对异常进行处理
  • try-catch语句块的范围不要太大,不利于对异常的分析
  • 一个方法被覆盖是,覆盖它的方法必须抛出相同的异常或子异常
  • 捕获的异常要有意义
  • 七、运行时异常

    RuntimeException是程序运行过程中产生的异常。非运行时异常包括Error类及其子类,表示Java运行系统中内部错误或资源耗尽的错误,这类错误比较严重。Exception类称为非致命性异常,可以通过捕捉处理后继续程序执行。

    八、使用throws抛出异常

    在使用throw语句抛出异常时,需要注意以下几点:

  • throw关键字通常用于方法体中,抛出一个异常对象。
  • 通过throw关键字抛出异常后,如果想在上一级代码中捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法的声明中指明要抛出的异常。
  • 抛出多个异常时使用逗号分隔。
  • 转载地址:http://fcul.baihongyu.com/

    你可能感兴趣的文章
    NHibernate学习[1]
    查看>>
    NHibernate异常:No persister for的解决办法
    查看>>
    Nhibernate的第一个实例
    查看>>
    NHibernate示例
    查看>>
    nid修改oracle11gR2数据库名
    查看>>
    NIFI1.21.0/NIFI1.22.0/NIFI1.24.0/NIFI1.26.0_2024-06-11最新版本安装_采用HTTP方式_搭建集群_实际操作---大数据之Nifi工作笔记0050
    查看>>
    NIFI1.21.0_java.net.SocketException:_Too many open files 打开的文件太多_实际操作---大数据之Nifi工作笔记0051
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_插入时如果目标表中已存在该数据则自动改为更新数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0058
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
    查看>>
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>
    NIFI1.21.0_Postgresql和Mysql同时指定库_指定多表_全量同步到Mysql数据库以及Hbase数据库中---大数据之Nifi工作笔记0060
    查看>>
    NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
    查看>>
    NIFI1.21.0最新版本安装_配置使用HTTP登录_默认是用HTTPS登录的_Https登录需要输入用户名密码_HTTP不需要---大数据之Nifi工作笔记0051
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增加修改实时同步_使用JsonPath及自定义Python脚本_03---大数据之Nifi工作笔记0055
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
    查看>>
    NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现update数据实时同步_实际操作05---大数据之Nifi工作笔记0044
    查看>>