javafortrycatch
A. java的try catch语句在循环里执行,如果抛出异常,还继续循环吗谢谢了!
如果异常发生的位置在try代码块里,那么如果在catch里,没有主动抛出异常,并且catch的代码没有发生异常,循环继续。
总之,循环是否中断,看 代码是否自己将异常处理了,如果程序处理了,不抛给 JVM,那么循环就不会终止,另外要注意自己的catch代码块是否也可能出现异常。
语句会抛出你自定义的异常,这种异常程序要求必须try----catch处理或者声明抛出异常。
throwsXXException(自定义异常)想要重试还是异常就终止的话,需要声明抛出异常,也就是告诉虚拟机,如果此时再次抛出异常,则直接抛给调用者,如果调用者没有对该异常进行处理,那么程序会弹出提示异常关闭。
B. try catch在Java中遇到for循环怎么用,在for循环里面还是外面用
外面。如果遇到异常,循环停止。如果放在循环里面,就会一直抛出异常信息,最后内存溢出。
楼下说我的错误:附上代码你运行下
放在循环里面捕获:
while (true)
{
try
{
throw new NullPointerException();
}catch (Exception e)
{
e.printStackTrace();
}
}
程序会一直打印异常信息。
放在外面捕获:
try
{
while (true)
{
throw new NullPointerException();
}
}
catch (Exception e)
{
e.printStackTrace();
}
打印一次就停止。
C. Java中的try catch的作用
try就像一个网,把try{}里面的代码所抛出的异常都网住,然后把异常交给catch{}里面的代码去处理,最后执行finally之中的代码。
无论try中代码有没有异常,也无论catch是否将异常捕获到,finally中的代码都一定会被执行。
例如:当除数为0时,编译不会报错,如果没有try/catch的话,程序直接崩溃。用try/catch的话,则可以让程序运行下去,并且输出为什么出错。
(3)javafortrycatch扩展阅读
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匹配的,就会报已捕获到异常的错误。
D. java中try和catch的具体作用
try就像一个网,把try{}里面的代码所抛出的异常都网住,然后把异常交给catch{}里面的代码去处理,最后执行finally之中的代码。
无论try中代码有没有异常,也无论catch是否将异常捕获到,finally中的代码都一定会被执行。
例如:当除数为0时,编译不会报错,如果没有try/catch的话,程序直接崩溃。用try/catch的话,则可以让程序运行下去,并且输出为什么出错。
(4)javafortrycatch扩展阅读
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匹配的,就会报已捕获到异常的错误。
E. java中try到某个异常catch中如何重新运行异常的该行代码
把要执行的那段代码,抽出一个方法,在try... catch 里调用
然后catch里捕捉到一场再调用。
可以用个循环控制重试的次数。
F. java try catch 处理: try catch 中间有for循环,循环时可能会catch到异常,但是我想一直循环下去
你是想说执行的程序可能会抛出异常但是你又不想在当前的程序处理???
那就不要用try catch 直接抛出异常不就完了~~~~~
G. 求解一个java try catch的问题,很简单
当一个参数有不确定性因素的时候那么用到这个参数的方法就可能出现异常,两种方法虽然看上去结果差不多,实际上还是有很大差距的,当String[] a 作为一个参数,但你仅仅只是过滤掉其中不用的元素,没有必要用到try catch,有业务就有可能有异常,所以你上面的算法除非只限制a数组过滤后为数字(并不是上面用的判断方法),第一种程序在正常用户输入的情况下是通不过的,一定要try catch,但是try catch 并不只有 if else 的功能,第二中方法中起关键作用的是continue,如果你捕捉到的异常让它烂在程序里不抛出去是没有意义的,所以大多数情况下try catch不作纯if else 的作用,正确的用法应该是先try catch,然后在块中code,这样既清洁又不扰乱各自的职能:如try{
String[] a = {"1","*","4","#","6"};
int count = 0;
for(int i=0;i<a.length;i++){
if(!a[i].equals("*") && !a[i].equals("#")){
count = count + Integer.parseInt(a[i]);
}
else{
continue;
}
}
System.out.println("count的结果(不用try catch的结果):"+count);
}
catch (Exception e) {
throw e;
}
你可以把 String[] a = {"1","*","4","#","6"};
换成String[] a = {"1","*","4","#","6","a"};试试,如果你一定要过滤,那么在用户输入千奇百怪的字符中你能认识每一个吗?所以只有判断a[i]为数字再相加才是正确的方法
H. java 的一个 try catch 问题
如果代码存在必须捕获的异常(比如SQLException),则需要try-catch处理。
其他情况可以根据自己的实际需要看看是否需要捕获异常。
上面的代码除了start不知道干嘛的,剩下没有需要try-catch的