java中try和catch的具体作用

想问一下java中try和catch的具体作用,如果不加try,catch系统自己跑的时候不也会抛出异常吗?比如IndexOutOfBoundsException什么的,自己加捕捉异常的语句具体有什么实质性的作用吗?仅仅是可以自定义抛出异常时输出的提示语句吗?

试分析区别,截图如下(不加不是一样可以知道输入的数太大了,超出整形范围吗):

try就像一个网,把try{}里面的代码所抛出的异常都网住,然后把异常交给catch{}里面的代码去处理,最后执行finally之中的代码。

无论try中代码有没有异常,也无论catch是否将异常捕获到,finally中的代码都一定会被执行。

例如:当除数为0时,编译不会报错,如果没有try/catch的话,程序直接崩溃。用try/catch的话,则可以让程序运行下去,并且输出为什么出错。



扩展资料

java中try....catch的使用原则

1、当代码中可能会遇到的异常需要用try{ }catch{Exception e}来处理,否则导致程序崩溃。

2、不要在for循环里面嵌套try catch子句。

3、尽可能的减少try catch子句的嵌套,会影响性能。

4、同一个try子句中多个catch时,异常处理原则。

当一个try块中包含众多语句,可能抛出多种不同的异常,只有通过多个catch块来捕获不同的异常。而如果两个异常存在继承关系,应该把子类异常放在父类异常的前面来捕获,或者把最小范围异常放在最前面 ,范围大的放在后面。

因为是按照catch块从上往下匹配,当它匹配某一个catch块的时候,就直接进入到这个catch块里面去了,后面在再有catch块的话,它不做任何处理,直接跳过去,全部忽略掉。

如果有finally的话进入到finally里面继续执行。Exception这个异常的根类一定要刚在最后一个catch里面,如果放在前面或者中间,任何异常都会和Exception匹配的,就会报已捕获到异常的错误。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-23
try catch 是来捕捉异常的不是代码的错误,是可以运行的。但是一些逻辑错误就不是代码的错了,try catch是用来捕捉代码的逻辑错误的,就像除法的被除数不能为零一样,代码不会报错,但是就会运行错误。那个就是来捕捉这种类似的异常的。
第2个回答  推荐于2017-10-06
区别就是,第一种是系统直接抛出异常了,程序在出错的地方就终止了。第二种,你自己捕获了异常,程序执行完catch()里面的代码后还可以继续执行后续的代码。
你这里的例子不是很明显,因为try,catch()的作用并不是用来打印出错信息的。而是保证程序不会因为出异常而中止执行。本回答被提问者采纳
第3个回答  2014-06-03
假设A为子类异常,最简单的情况,我在try里直接空指针异常了,A发现了,且在catch子句里处理好了.
那一切OK.
因为catch子句可以有多个.所以这时就可能出现父类异常B了.此时的catch顺序就是子类在前父类在后.当然了catch子句里的异常可能是多个异常,不存在父子关系.
一句话:能捕捉到的异常,将之处理了,就不进行抛出了.处理不了,继续往该异常的上一层异常调用的地方抛出,直到解决.

catch里面可以throw
方法后可以throws exception.
第4个回答  2013-08-23
try catch用来捕获异常的,如果你不愿意用的话,可以让函数抛出异常,即在函数后加上throws 异常名
相似回答