• Java中的异常处理机制的简单原理和应用?


    程序运行过程中可能出现各种“非预期”情况,这些非预期情况可能导致程序非正常结束。

    为了提高程序的健壮性,Java提供了异常处理机制:

    try

    {

    s1...

    s2...

    s3...

    }

    catch(Exception ex)

    {

    //对异常情况的修复处理

    }

    对于上面处理流程,当程序执行try块里的s1s2s3遇到异常时,Java虚拟机将会把这个异常情况封装成异常对象,这个异常对象可以被后面对应的catch块捕捉到,这样保证这些异常会得到合适的处理。

    Java对异常进行了分类,不同类型的异常分别用不同的Java类表示,所有异常的根类为java.lang.ThrowableThrowable下面又派生了两个子类:ErrorExceptionError错误,一般是指虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断。通常应用程序无法处理这些错误,因此应用程序不应该试图使用catch块来捕获Error对象。

    Exception表示一种设计或实现问题。也就是说,程序员应该对这些情况进行考虑、并提供相应的处理。 

    异常有可分为Runtime异常和Checked异常,Checked异常体现了Java的设计哲学:没有完善错误处理的代码根本就不会被执行!对于Checked异常的处理方式有两种:

    A.当前方法明确知道如何处理该异常,程序应该使用try...catch块来捕获该异常,然后在对应的catch块中修补该异常。

    B.当前方法不知道如何处理这种异常,应该在定义该方法时声明抛出该异常。

    实际上JavaChecked异常后来“争议不断”,因为Checked异常要求程序员要么显式声明抛出,要么进行捕捉,不能对Checked异常不闻不问,这样就给编程带来了一定的复杂度,比如SpringHibernate框架的一大特点就是把Checked异常包装成了Runtime异常。

    Runtime异常则比较灵活,开发者既可以选择捕获Runtime异常,也可以不捕获。

    Java Program!
  • 相关阅读:
    SSL证书在HTTPS的应用
    tabindex和事件
    Git常用命令
    正则表达式的断言
    JS中的模块
    跨域问题
    MarkDown 入门
    Angular如何自定义webpack配置
    Angular常见错误
    Assembly 不能正常加载
  • 原文地址:https://www.cnblogs.com/programb/p/14068572.html
Copyright © 2020-2023  润新知