❶ java中try和catch的具体作用
try就像一个网,把try{}里面的代码所抛出的异常都网住,然后把异常交给catch{}里面的代码去处理,最后执行finally之中的代码。
无论try中代码有没有异常,也无论catch是否将异常捕获到,finally中的代码都一定会被执行。
例如:当除数为0时,编译不会报错,如果没有try/catch的话,程序直接崩溃。用try/catch的话,则可以让程序运行下去,并且输出为什么出错。
(1)java中异常必须执行try吗扩展阅读
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匹配的,就会报已捕获到异常的错误。
❷ java 异常不处理会怎么样
会一层一层的往上传递,直至捕捉到异常为止。如果始终捕捉不到,只能抛出了!这里的不处理是指,没有try {}catch{}代码块,如果添加了捕捉代码块而没有在catch里面填写处理语句,那这种情况也算是捕捉了,不过是没有什么动作的处理。
❸ Java 异常中哪些是检查型异常
java中异常分为两类:
checked exception(检查异常)和unchecked exception(未检查异常),对于未检查异常也叫RuntimeException(运行时异常)。
❹ 不明白为什么java要用try.catch.不用完全没有影响
(1)方便记录日志定位问题,有了try.catch,你可以记录非常详细的日志信息,比如记录一下异常出现的内地方是哪个模块哪个功能容的哪个方法在进行什么操作.
这样的话,一旦出现问题,可以非常快速定位问题.
要知道,实际使用的生产环境,有很多是不能远程调试的,客户在内网使用,你只有根据实施提供的日志来定位问题.
(2)有些异常需要提示客户,比如互相调用的一些独立模块,A模块调B模块的时候,B没有启动好,这时候抛出的超时之类的异常,就需要捕获,并且转换成用户能理解的信息提示.
(3)有些异常是不能影响业务逻辑的,比如给某个变量初始化值的时候,如果发生异常,给该变量一个默认值,这时候其实是要在catch里面做处理的.
一个东西出现总是有道理的,其他情况你用到的时候就知道了