• java异常处理


    Thorwable类所有异常和错误的超类,有两个子类Error和Exception,分别表示错误和异常。

    1、Error与Exception

    • Error(错误)表示运行应用程序中较严重问题, 是程序无法处理的错误。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。比如OutOfMemoryError、ThreadDeath等。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。
    • Exception(异常)是应用程序中可能的可预测、可恢复问题。一般大多数异常表示中度到轻度的问题。异常一般是在特定环境下产生的,通常出现在代码的特定方法和操作中。在 EchoInput 类中,当试图调用 readLine 方法时,可能出现 IOException 异常。

    2、Exception又分为运行时异常(RuntimeException)(unchecked)和非运行时异常(checked),

    • 运行时异常都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的。
    • 非运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。

       如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。

    选择checked还是unchecked异常?

    选择checked还是unchecked都是由你自己决定的,很难说哪种就一定正确,反之就一定错误。

    过多的是用checked异常会导致大量的try语句,代码丑陋,阅读性差。

    建议:

    • 使用checked异常:当所有调用者必须处理这个异常,可以让调用者进行重试操作;或者该异常相当于该方法的第二个返回值。使用checked异常。
    • 使用unchecked异常:调用者根本无法处理。这个异常是一个非常严重的错误,如数据库连接错误,文件无法打开等。或者这些异常是与外部环境相关的。不是重试可以解决的
  • 相关阅读:
    tesseract动态库依赖关系
    面向对象分析与设计笔记(一)
    用例图笔记
    矩阵乘法求解
    二维数组 Visual Studio怎么监视
    cmake windows caffe cuda版本的切换
    Python入门
    Python基本数据类型
    【LabVIEW】二进制文件的存储与读取方法
    【LabVIEW】文件对话框点击取消后报错、实现自定义文件名
  • 原文地址:https://www.cnblogs.com/gxz-sw/p/6646988.html
Copyright © 2020-2023  润新知