java里try/catch语句通常什么时候用?有什么含义?
例如:当除数为0时,编译不会报错,如果没有try/catch的话,程序直接崩溃。用try/catch的话,则可以让程序运行下去,并且输出为什么出错。
}用try包围的语句是java编译器认为有可能出现异常,所以让你提前处理。
当你觉得一段代码并不会完全正常运行的时候,就用try{}catch括起来,并及时捕获导致运行错误的原因和期望进行的处理。举个例子:你需要提示用户输入一串数字,这个时候用户会输纯数字,数字和字母,纯字母三种情况。
而try则可以保证程序的正常运行下去,比如说:try{ int i = 1/0;}catch(Exception e){ …} 一个计算的话,如果除数为0,则会报错,如果没有try的话,程序直接崩溃。
java中try-catch-finally块的代码运行顺序是怎么样的?
try中写正确的程序。catch中处理异常,finally无论如何都会执行里面的代码块。
try+catch+finally 程序的流程是:运行到try块中,如果有异常抛出,则转到catch块,catch块执行完毕后,执行finally块的代码,再执行finally块后面的代码。如果没有异常抛出,执行完try块,也要去执行finally块的代码。
try-catch-finally是常见的配套,其中catch和finally并不是必需的,catch是捕获try中的异常,没有的话并不影响程序运行,finally是执行完try(catch)后必定执行的代码块,没有的话也不影响程序运行。
你catch以后没有重新把异常输出,就表示你已经正常处理了异常,异常就不存在了。但是,由于异常发生过,所以,try后面的语句不会再运行了。 所以A不会出来。
…里的第二种情况,是不是w捕获到异常后,先执行catch块,再执行finally…
1、System.exit();这样的话finally的代码块是不会执行的。捕获异常的规则是尽量优先捕获具体的异常。
2、catch 块:用于处理try捕获到的异常。finally 块:无论是否捕获或处理异常,finally块里的语句都会被执行。编译器硬性规定,异常如果选择捕获,就必须用catch显示声明以便进行处理。
3、try-catch-finally是常见的配套,其中catch和finally并不是必需的,catch是捕获try中的异常,没有的话并不影响程序运行,finally是执行完try(catch)后必定执行的代码块,没有的话也不影响程序运行。
4、前面是不是 发生异常 如果try{}里面的 正常执行完后 finally 做结束处理 那么 finally{} 后面还有 那当然会执行 如果 try{} 发生异常 到catch{}捕捉 或直抛出 然后要执行finally{} 里面的,但是后面的就不会执行了。
5、发生异常的时候,java会一个个向下catch,直到有一个catch能捕获异常,再下面的catch就不执行了。但是上面catch的范围一定要比下面catch的范围少,否则下面的catch就不会捕获得到了,也编译不过。
6、第多个catch块时候,Java虚拟机会匹配其中一个异常类或其子类,就执行这个catch块,而不会再执行别的catch块。第throw语句后不允许有紧跟其他语句,因为这些没有机会执行。
java中catch子句的排列是子类在前还是父类在前?为什么呢
答案应该是D,如果异常有继承关系,catch顺序先子类,后父类。相信自己,答案也会错,特别是今天的出版物。
比如某子类异常抛出,父类异常的catch代码块就会执行了啊,执行完了就去finally代码块或者继续执行了,后面的子类catch代码块根本执行不到。
区别就是,第一种是系统直接抛出异常了,程序在出错的地方就终止了。第二种,你自己捕获了异常,程序执行完catch()里面的代码后还可以继续执行后续的代码。
无论try中代码有没有异常,也无论catch是否将异常捕获到,finally中的代码都一定会被执行。例如:当除数为0时,编译不会报错,如果没有try/catch的话,程序直接崩溃。
Java运行时系统从上到下分别对每个catch语句处理的例外类型进行检测,直到找到类型相匹配的catch语句为止。
java中异常处理时为什么可以只要try-finally,而可以不要catch啊。
finally可以连用,这是众所周知的,但是try、catch、finally这三个关键字却不能单独使用,如果在程序中只想try而不去catch也是可以的,但是try的后面必须跟有finally。
try 后面也可以直接接finally不需要catch 。至于你说的第二句没太明白你的意思,反正一个异常抛出后,产生异常的try块是肯定会终止执行,而跳转到你对异常的处理语句中。
很显然这取决于方法本身是否能够处理try中出现的异常。如果自己可以处理,那么直接catch住,不用抛给方法的调用者;如果自己不知道怎么处理,就应该将异常向外抛,能够让调用者知道发生了异常。
有一种可能会出现没有catch异常的情况:当抛出的不是Exception及其子类时,catch(Exception e)将无法捕获该异常。