0引言在网上、刊物上,有关Java异常机制的文章已经够多了,然而在实践中,我们仍然发现要把异常机制用好不是一件很容易的事情。本文作者凭借多年的Java开发经验,从一个开发者的独特视角,阐述了在Java中更有效地使用异常机制的策略。正确地使用异常,可以使程序易于开发、维护、远离bug、易于使用。反之,如果异常被错误地使用,就会发生完全相反的事情:程序难以理解和开发、产生令人迷茫的结果、非常难以维护。1Java异常处理基础1.1运行时刻(Runtime)的异常处理顾名思义,异常就是一种意料之外的情形,导致程序不得不中断退出运行,或处理这种情形以后继续运行。一个典型的例子,就是被零除的异常,在编译时是正常的,但是在运行时却会失败,并退出运行。想要避免程序退出,必须捕获并处理异常。事实上,我们可以捕获所抛出异常的一个父类。但这样做有一个副作用,那就是一切从父类派生的异常都会被捕获这也许是所希望的,也许是所不希望的。Java异常机制允许用不同的粒度来捕获并处理所发生的一切异常。1.2编译时刻(Compile-time)的异常检查比起一般的编译器,Java可以在编译时发现更多的隐错。Java的异常处理就是这样的一种机制。其编译过程具有以下两方面特性:抛出异常的检测程序不能够不加声明地抛出一个受检异常。捕获异常的检测程序不能对已声明为可能发生的受检异常置之不理,也不能捕获根本不可能发生的(即未声明的)受检异常。编译时刻可以检查的异常,称为受检异常(checkedexcep-tion)。与此相反,有一些异常在编译时不被检查,它们被称为非受检异常(uncheckedexception)。2抛出异常的策略2.1抛出异常的原则如何抛出一个有效的异常?问题看似简单,实则不然。先看一段代码:publicResourcegetResource(Stringname)throwsResourceLoadingFailedException{...thrownewResourceLoadingFailedException("somethingwrong!");}当方法getResource()抛出ResourceLoadingFailedException异常时,它同时“抛出”了三方面的信息,分别对应着三种消息的“接收者”:异
java异常处理策略_Java异常处理策略
最新推荐文章于 2024-05-13 10:30:39 发布