zoukankan      html  css  js  c++  java
  • 167 01 Android 零基础入门 03 Java常用工具类01 Java异常 05 使用throw和throws实现异常处理 02 使用throw抛出异常对象

    167 01 Android 零基础入门 03 Java常用工具类01 Java异常 05 使用throw和throws实现异常处理 02 使用throw抛出异常对象

    本文知识点:使用throw抛出异常对象

    说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进行了截图记录,没有对截图步骤进行详细的文字说明(后面博主时间充裕了,会对目前的博客编辑修改,补充上详细的文字说明);有些步骤和相关知识点缺乏文字描述,可能会难以理解。读者如有不明之处,欢迎博客私信或者微信(本人微信在博客下方的“关于博主”处)与本人交流,共同进步

    使用throw抛出异常对象

    throw抛出异常的简介

    mark

    throw抛出异常的2种方案

    mark

    throw抛出异常的作用

    mark

    生活实例中业务需求:
    开了一个家庭旅馆
    mark
    住宿需要实名制
    mark
    旅馆有规定
    mark
    mark

    针对这样的业务场景,就可以通过抛出异常并且处理异常的方式进行解决。

    throw抛出异常实现上述业务需求

    示例代码:
    会有2种方案:
    mark

    throw抛出异常方案1:使用try-catch
    mark

    throw抛出异常方案2:使用throws抛出
    throws在方法上抛出异常,可以抛Exception,也可以抛出Throwable
    mark
    mark

    在main方法调用testAge()方法时,也还是出现这2种方案:或者try-cath,或者继续往上抛出异常。
    mark

    如果在main方法里继续往上抛,其实就是直接抛给虚拟机了。
    所以,我们暂时先选择用try-catch来处理。

    mark

    以上就是我们方案2:在编写testAge方法中,使用throw抛出异常对象;在方法声明处,通过throws关键字声明异常类型;再在方法调用处使用异常处理(本例中,即:在调用testAge方法的main方法中用try-catch处理,也可以选择继续throws声明异常往上抛)。

    测试方案2 :
    mark
    mark

    2种方案总结:
    mark

    所以抛出异常并不总是坏事,也是可以帮助我们实现一些特定的处理方案。

    关于抛出异常类型问题的总结

    抛出异常的方法可以抛Throwable
    mark
    方法调用处,异常处理的位置也要改成Throwable
    mark

    如下,这样的处理方案也是完全没有问题的。
    mark

    因为Throwable是Exception的父类。
    即:在方法代码中,throw抛出异常(本例中是Exception)时;在方法的声明处,throws可以声明和throw抛的异常对应的异常,也可以声明throw抛的异常的父类。
    mark
    mark

    那么,throws声明的异常是否可以是throw抛的异常的子类呢?
    是不能的
    mark

    RuntimeException运行时异常类,都属于非检查异常,非检查异常不强制要求要进行处理。
    mark

    所以,通常用throw抛出异常时,是不建议抛出一个 非检查异常 的。

  • 相关阅读:
    【转】Visual Studio 选择相同变量高亮
    匿名委托(方法) 以 ThreadStart 为例
    执行多个Sql脚本,Sqlplus
    【转】Win8 下 管理无线网络
    ORA-22992:没法使用从远程表选择的LOB定位器
    【转】NET中管理数字证书(Digital Certificate)的一些类
    修改数据库内存
    C# 计算一串字符串算法
    奇数平方的九宫格
    lua 的一些常用概念
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/13848619.html
Copyright © 2011-2022 走看看