zoukankan      html  css  js  c++  java
  • 2020.10.31

    一、今日学习内容:

    今天主要学习的还是有关异常处理的部分知识:

    1、异常的多态特性:

    (1)可以有多个catch语句块,每个代码块捕获一种异常。在某个try块后有两个不同的catch 块捕获两个相同类型的异常是语法错误。

    (2)使用catch语句,只能捕获Exception类及其子类的对象。因此,一个捕获Exception对象的catch语句块可以捕获所有“可捕获”的异常。

    (3)将catch(Exception e)放在别的catch块前面会使这些catch块都不执行,因此Java不会编译这个程序。

    2、“finally”的功用

    资源泄露:当一个资源不再被某应用程序使用,但此程序并未向系统声明不再使用此资源时发生这种情况

    finally语句块主要用于解决资源泄露问题,它位于catch语句块之后,JVM保证它们一定执行。

    注意:finally语句块中也可能发生异常,如果这种情况发生,先前的异常被放弃。

    3、Java 7 特性:自动释放的资源-1

    finallytry-with-resources

    try ( ClassName  theObject = new ClassName() )
    {
            // use theObject here
    }
    catch ( Exception e )
    {
        // catch exceptions that occur while using the resource
    }

    要求ClassName指定的类型必须实现AutoCloseable接口

    4、Java 7 特性:自动释放的资源-2

    AutoCloseable接口的定义如下:

    public interface AutoCloseable {
            void close() throws Exception;
    }

    当程序执行流程离开try-with-resources结构时,AutoCloseable接口所定义的close()方法会被自动调用,因此,无需在finally子句中显式调用close()方法。

    5、如何跟踪异常的传播路径?

    (1)当程序中出现异常时,JVM会依据方法调用顺序依次查找有关的错误处理程序。

    (2)可使用printStackTrace 和 getMessage方法了解异常发生的情况:

        printStackTrace:打印方法调用堆栈。

        每个Throwable类的对象都有一个getMessage方法,它返回一个字串,这个字串是在Exception构造函数中传入的,通常让这一字串包含特定异常的相关信息。

    6、throws语句:

    throws语句表明某方法中可能出现某种(或多种)异常,但它自己不能处理这些异常,而需要由调用者来处理。

    当一个方法包含throws子句时,需要在调用此方法的代码中使用try/catch/finally进行捕获,或者是重新对其进行声明,否则编译时报错。

    7、受控与不受控的异常:

    throws语句中声明的异常称为受控(checked)的异常,通常直接派生自Exception类。

    RuntimeException(其基类为Exception) 和Error(基类为Throwable)称为非受控的异常。这种异常不用在throws语句中声明。

    CheckedExceptionDemo.java示例展示了上述两种异常的特性。

    8、子类抛出受控异常的限制

    一个子类的throws子句抛出的异常,不能是其基类同名方法抛出的异常对象的父类。

    二、遇到的问题:

       没有遇到什么问题。

    三、明日学习计划:

       继续学习四则运算的相关代码修改。

  • 相关阅读:
    Discuz X 2.5 点点(伪静态)
    jq 、xml 省市级联动
    php memcache 初级使用(2)
    关于windows虚拟内存管理的页目录自映射
    SharePoint 2010 网络上的开发经验和资源
    SharePoint 2010 Reporting Services 报表服务器正在内置 NT AUTHORITY\SYSTEM 账户下运行 解决方法
    SharePoint 2010 Reporting Services 报表服务器无法解密用于访问报表服务器数据库中的敏感数据或加密数据的对称密钥 解决方法
    Active Directory Rights Management Services (AD RMS)无法检索证书层次结构。 解决方法
    SharePoint 2010 Reporting Services 报表服务器实例没有正确配置 解决方法
    SharePoint 2010 页面引用 Reporting Services 展现 List 报表
  • 原文地址:https://www.cnblogs.com/marr/p/14175250.html
Copyright © 2011-2022 走看看