
问题描述:
给几个例子吧
解析:
在使用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); //获得错误信息
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)