JAVA学习资料之异常处理

语法: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类的子类及间接的子类。其它的异常就是“捕获异常”了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值