您的位置:首页 > 编程语言 > Java开发

JAVA学习资料之异常处理

2010-08-01 01:17 176 查看
语法:try{…}catch(异常类型 变量){…}finally{…}
TRY语句块:测试语句在TRY语句块 中。当所调用的方法内部抛出异常时,不会立刻停止程序(但在TRY语句块中,余下的代码不会执行),而会到匹配的CATCH语句块中,
进行异常处理。

另外,必须在TRY语句块中调用声明时带有“throws 某个异常类型”的方法(书上称之为“捕获异常”,常出现于处理输入输出的java.io包中,所以有的书把它们放在一块讲)。其实,不管有没有“throws”,都可使用该语句来处理异常,以防止应用程序因出现致命错误而终止(这很有用,你想想当你浏览网页时,浏览器突然崩溃,你有什么感觉?)。只是如果你小心,运行时异常(即“未捕获异常”)是可以防止的(如:数组下标越界)。而对于有“throws”的方法(即会抛出“捕获异常”),常常会有意外出现(不是由程序本身造成的,比如网络问题导致传输中止),因而必须使用TRY-CATCH。这样的规定可以提高Java程序的健壮性。
异常类型:必须继承于Exception。使用Exception能捕捉所有类型的异常(多态性);而使用其子类,可以捕捉某个特殊类型的异常。
CATCH语句块:异常处理代码在 CATCH语句块中(可以省略,但是CATCH和FINALLY不能同时省略)。如果你并列多用几次CATCH语句,可以检查多种不同的异常。但要注意要捕获异常继承关系和其顺序,比如:try{}catch(Exception
e){…}catch(IOException e){…},由于IOException继承于Exception,所以第二个CATCH是执行不到的,在编译时会有提示。
FINALLY语句块:由 于有的操作是必须做的(比如关闭文件或网络连接),而在TRY语句中,一旦出现异常,余下的代码就不会执行。这时,它们就需要在FINALLY语句块中。
因为不管是否出现异常,FINALLY语句都会在最后执行(当然如果你没有省略它的话)。
捕获异常与未捕获异常:都继承于Exception类。“未捕获异常”继承于Exception
RuntimeException类的子类及间接的子类。其它的异常就是“捕获异常”了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: