zoukankan      html  css  js  c++  java
  • 创建异常类

    当面对选择抛出什么类型的异常,你可以使用一种由别人写的异常——Java平台提供了大量的异常类供你使用——或者你也可以写一个你自己的异常类型。如果符合下面几个条件之一,你就应该创建自己的异常类型,反之你应该用别人写的。
    • 你是否有一个异常类型,Java平台里面的异常类型都不能描述它?
    • 它是否可以帮助用户区分这个异常类型是你的还是其他供应商的?
    • 你的代码中是否会抛出多种相关的异常?
    • 如果你用了别人的异常类型,用户是否有权限访问这些异常?也就是,你的代码包是不是独立的?
     
    一个例子
     
    假如你写了一个linked list类,这个类支持下面的方法:
    • objectAt(int n) — 返回列表中第n个对象。如果参数小于0或者大于列表当前还有的对象个数,就抛出异常
    • firstObject() — 返回列表中的第一个对象。如果列表中没有任何对象,就抛出异常
    • indexOf(Object o) — 在列表中搜索指定的对象,并返回对象所在的位置。如果这个对象不再list中,就抛出异常
     
    这个linked list类可以抛出多种异常。如果能用一个异常处理器就可以处理所有这个类可能抛出的异常,就很方便了。当然,如果将你的linked list类打包发布到一个包里面,所有相关的代码都应该打包在一起。这样的话,linked list应该提供自己的一套异常类型。
     
    下图展示了一种可能的类层级结构,这些类都是linked list抛出的异常类型:

                示例异常类层级结构

    选一个父类
     
    理论上所有Exception的子类都可以当做LinkedListException的父类。然而,一眼看过去,它们要么看起来太专业,要么看起来完全和LinkedListException无关。因此,LinkedListException的父类应该是Exception。
     
    大部分你写的applets和应用都只抛出Exception。Error通常只用在系统中发生重大的或者硬故障性的问题时,比如那些阻止JVM运行的问题。
     
    注意:为了使代码更易读,所有继承(直接或间接)于Exception类的子类的名称都应该以“Exception”为后缀。

    原文地址

    转自:http://leaforbook.com/blog/jexception/translate/creating.html

  • 相关阅读:
    交换实验
    路由引入和控制
    ISIS
    BGP联盟
    BGP2
    bgp
    Linux日常总结
    配置本地yum源方法
    达梦数据库常见问题-安装
    达梦数据库常见问题-安装
  • 原文地址:https://www.cnblogs.com/hihtml5/p/6505956.html
Copyright © 2011-2022 走看看