本文是为ZDNet翻译的系列文章之一,原文已经发表在ZDNet网站
假如你不创建你自己的异常你就不会真正懂得他们的全部的能力,但是选择扩展已有异常和重用他们是一个不错的方式。
Java中的异常的概念是Java API中一个非常重要的部分。由于要强制捕捉很多异常,开发者很难忽略他们的异常处理代码。这些异常就是我们常说的已检查异常(checked exceptions),因为开发者必须每次都检查它们被抛出的可能性。
开发者应该比仅仅处理那些异常走得更远,当应用程序发生错误时他们应该开始创建他们自己的异常类,这答应他们向他们的代码增加新的意义并阻止底层异常向上传播。
增加新类型的异常的一个非常好的地方是屏幕的图形模型。它有固定的大小并且有移动和改变光标的方法,假如程序员想将光标移出屏幕就应该抛出一个BoundaryPassedException 异常不不是仅仅将光标移到屏幕中一个可能的地方,这可以使得程序员熟悉到他或者她的代码的行为不正确。
一旦决定抛出一个异常,开发者首先必须考虑已有的异常。UnsupportedOperationException 是一个很好的值得重用的异常。开发者经常暂时让一个方法空着,因为那个方法还没有用。这种情况可能发生在我们自己的类里面或者是Map或List的扩展类里面,为何不考虑抛出一个UnsupportedOperationException 异常去提醒开发者那个方法还不能使用而不是留下一个空方法或者返回null值。
其它可以考虑重用的异常是:
? IllegalArgumentException: 传进来一个错误的参数。你的方法不能接受负数或者null值
? ParseException: 解析的时候发生错误。这个异常需要你记住错误发生的位置。
? ArithmeticException: 当编写数学算法的时候可能发生这个异常。代码里面有什么非法的事情发生的时候抛出这个异常。
抛出你自己的异常可以提高你的代码的可读性;可以帮助开发者使用你的代码计划他们的错误处理;以及帮助提高你的设计的基本结构。通过重用Java核心库中的异常,我们可以遵循面向对象的基本重用哲学。