博客
关于我
异常处理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/

    你可能感兴趣的文章
    mysql执行顺序与索引算法
    查看>>
    mysql批量update优化_Mysql中,21个写SQL的好习惯,你值得拥有呀
    查看>>
    mysql批量update操作时出现锁表
    查看>>
    MYSQL批量UPDATE的两种方式
    查看>>
    mysql批量修改字段名(列名)
    查看>>
    mysql技能梳理
    查看>>
    MySQL报Got an error reading communication packets错
    查看>>
    Mysql报错Can‘t create/write to file ‘/tmp/#sql_3a8_0.MYD‘ (Errcode: 28 - No space left on device)
    查看>>
    MySql报错Deadlock found when trying to get lock; try restarting transaction 的问题解决
    查看>>
    MySQL报错ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘
    查看>>
    Mysql报错Packet for query is too large问题解决
    查看>>
    mysql报错级别_更改MySQL日志错误级别记录非法登陆(Access denied)
    查看>>
    Mysql报错:too many connections
    查看>>
    MySQL报错:无法启动MySQL服务
    查看>>
    mysql排序查询
    查看>>
    Mysql推荐书籍
    查看>>
    Mysql插入数据从指定选项中随机选择、插入时间从指定范围随机生成、Navicat使用存储过程模拟插入测试数据
    查看>>
    MYSQL搜索引擎
    查看>>
    mysql操作数据表的命令_MySQL数据表操作命令
    查看>>
    mysql操作日志记录查询_如何使用SpringBoot AOP 记录操作日志、异常日志?
    查看>>