Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 抛出异常但不停止程序的最佳方法是什么?_Java_Exception - Fatal编程技术网

Java 抛出异常但不停止程序的最佳方法是什么?

Java 抛出异常但不停止程序的最佳方法是什么?,java,exception,Java,Exception,请在下面找到一个我需要的例子。事实上,我不想关闭整个过程,因为即使它抛出异常,它也可以继续 环路 EndCurrentProcessException 也许用抛出新的不是一个好方法 我希望这是清楚的,如果不是,请不要犹豫,询问我更多信息。不要抛出异常。以你认为合适的方式处理方法失败 在您的示例中,修改myMethod()方法,如果成功,则返回布尔值true,如果失败,则返回布尔值false: 循环: 尝试使用Try-catch语句 for (int i = 0, i < items.len

请在下面找到一个我需要的例子。事实上,我不想关闭整个过程,因为即使它抛出异常,它也可以继续

环路

EndCurrentProcessException

也许用
抛出新的
不是一个好方法


我希望这是清楚的,如果不是,请不要犹豫,询问我更多信息。

不要抛出异常。以你认为合适的方式处理方法失败

在您的示例中,修改myMethod()方法,如果成功,则返回布尔值true,如果失败,则返回布尔值false

循环:


尝试使用Try-catch语句

for (int i = 0, i < items.length; i++) {
    // blablabla
    try {
        myMethod();
    } catch(EndCurrentProcessException e){
        // do something or continue;
        continue;
    }
    // blablabla2
 }
 // some code here also
for(int i=0,i
事实上,我不想关闭整个流程
-
我应该在这里放置什么来停止当前流程
,那么您想不想停止它?不清楚你在问什么你的意思是停止执行
MyMethod()
?你可以总是
返回,当然,在记录任何错误或通知用户失败等之后。您的异常应该描述错误行为,而不是处理问题本身。说到过程,你是指循环中的迭代吗?为什么你首先要抛出一个异常?异常用于对您没有影响的事物(文件IO、网络、硬件等)。Try catch block捕获异常是否会停止正在进行的执行?
// blabla
if (!found)
     throw new EndCurrentProcessException()
// blabla
public void EndCurrentProcessException() {
     ??? What I'm supposed to put here to stop the loop iteration ???
}
// set a lot of variables and execute some methods
for (int i = 0, i < items.length; i++) {
   // blablabla
   if (!myMethod()) {
       // Skip this particular ITEM...
       continue;
       // Or whatever you want.
   }
   // blablabla2
}
public boolean myMethod() {
    // ... Method code ...
    if (!found) {
        return false;
    }
    // ... Possibly more Method code ...
    return true;
}
for (int i = 0, i < items.length; i++) {
    // blablabla
    try {
        myMethod();
    } catch(EndCurrentProcessException e){
        // do something or continue;
        continue;
    }
    // blablabla2
 }
 // some code here also