水能详细讲解一下java 中的异常处理 try catch throw

水能详细讲解一下java 中的异常处理 try catch throw,第1张

分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

给几个例子吧

解析:

在使用java提供得一些方法时会产生一些错误(具体的错误类型可以到手册里查看)我们就要用try catch把错误捕捉

例如

try
{

Threadsleep(int i);}

catch(InterruptedException e){

Systemoutprintln("发生了错误"+egetMessage());

}

上面例子中得 sleep方法会发生个错误 其中 InterruptedException 是错误得类型 egetMessage();是发生了错误时会显示一条具体提示得信息

而throw就是抛出一个错误,比如你写的一个方法中用到了上述的方法,你不必去捕捉他,只要在方法明后加个throws InterruptedException ,在main方法中去捕捉就可以了

try{}catch(){}代码块主要用于捕获异常,并且对异常进行处理
在IO中,关闭输入输出流主要写在finally中,因为不管进行什么样的 *** 作,流必须关闭,而不管是否出现异常,finally里面的语句也要执行
数据库方面,出现异常后事务回滚,并且在log日志中记录异常信息,便于以后的维护,关闭数据库的 *** 作也是在finally里面,连接用完后要关闭,提高性能

你所说的一个try-catch只能捕获一个错误是对的,不论后面跟着多少个catch都一样,try-catch语句是这样执行的:首先逐个从上到下执行try块中的java语句,如果没有发生异常,则执行完try块后跳过catch块(不论有多少个catch都跳过)。如果try块中某条语句存在异常,则跳到相对应的catch块中(发生什么异常,就跳到什么catch里,如果没有准确对应的,就跳到父类异常的catch中),执行完该catch块中的语句,然后跳过其它的catch块,接着往下走,明白了么?总之,try-catch只能处理一个异常,这就是为什么后面通常跟finally,要有一个统一的出口。
如果还不明白,你就在环境下用一段代码试试就好了,不要着急,随便找两个异常一试就OK!
比如:
try{
int b=25/0;
Threadsleep(2000);
}
catch(ArithmeticException e){
Systemoutprintln("除零错误!");
}
catch(InterruptedException e){
Systemoutprintln("延时错误!");
}
上面这个例子就会在屏幕上显示"除零错误!"四个字,因为众所周知,任何数字不能除0,所以25/0是错的,它抛出ArithmeticException(数学异常),则直接跳进第一个catch块内,而没有进入第二个块,尽管Threadsleep(2000);也有异常。

虽然 Java 执行时期系统所提供的预设处理器对除错很有用,你通常想要自己处理例外。这样做有两个优点:第一,它让你修正错误。第二,它可以避免程式自动终止。每当错误发生时,如果你的程式就停止而且列印出堆叠追踪,大多数的使用者都会感到很困惑。很幸运,你很容易就能避免这种情形。
要防备并且处理执行时期错误,只要将你要监视的程式码放在 try 区块里即可。在 try 区块之后紧接著在 catch 子句里指定你希望捕捉的例外型态
错误捕捉例子:
try
{
code; //将自己的代码放在其中;
}
catch(e) //如果上面的代码有错误,这里就捕获
{
alert(enumber); //获得错误信息
}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12884743.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-28
下一篇2025-08-28

发表评论

登录后才能评论

评论列表(0条)

    保存