zoukankan      html  css  js  c++  java
  • Java异常分类及处理

    1.Throwable是所有异常的根(java.lang.Throwable)
    2.Error是错误(java.lang.Error)

    当程序发生不可控的错误时,程序会报错,Error及其子类的对象不应被抛出。


    3.Exception是异常(java.lang.Exception)

    Exception一般分为Checked异常和Runtime异常

    所有RuntimeException类及其子类的实例被称为Runtime异常,

    不属于该范畴的异常则被称为CheckedException。

    3.1.Runtime异常

    为了保障程序的健壮性,Runtime异常都不应该被捕捉,而是之前做判断

    常见的Runtime异常

    算术异常类:ArithmeticExecption

    例:BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常如下:

    java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. at java.math.BigDecimal.divide(Unknown Source)

    解决方法:给divide设置精确的小数点divide(xxxxx,2, BigDecimal.ROUND_HALF_EVEN)

    例:当除数为0时,会抛出:java.lang.ArithmeticException : / by zero

    空指针异常类:NullPointerException

    例:对null成员做任何操作都会报这个错
    类型强制转换异常:ClassCastException
    数组负下标异常:NegativeArrayException
    数组下标越界异常:ArrayIndexOutOfBoundsException
    违背安全原则异常:SecturityException
    文件已结束异常:EOFException
    文件未找到异常:FileNotFoundException
    字符串转换为数字异常:NumberFormatException
    操作数据库异常:SQLException
    输入输出异常:IOException
    方法未找到异常:NoSuchMethodException

    3.2.CheckedException异常

    对于CheckedException异常JAVA要求程序员对其进行try catch

     例:查询数据库时需要抛出:FileNotFoundException

     例:java.lang.ThreadDeath线程结束。当调用Thread类的stop方法时抛出该错误,用于指示线程结束。

  • 相关阅读:
    使用python向Redis批量导入数据
    SkinSharp用法
    java设计模式演示样例
    [LeetCode] Search for a Range [34]
    Java 实现组合(Composite)模式
    机房收费系统重构中的一些感受
    qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果
    Windows下FFmpeg高速入门
    C# DataTable的詳細使用方法
    NGUI 3.5教程(六)Font字体
  • 原文地址:https://www.cnblogs.com/corolcorona/p/6647143.html
Copyright © 2011-2022 走看看