【问题标题】:exception handling, creating log and continue the program even after an exception occurs in JAVA [duplicate]即使在JAVA中发生异常后,异常处理,创建日志并继续程序[重复]
【发布时间】:2012-05-11 08:16:04
【问题描述】:

可能重复:
exception handeling, creating log and continue the program in JAVA

我正在用 JAVA 设计一个程序,该程序在大约 10 次迭代中捕获结果,之后我必须将所有结果写入日志文件,我需要一个解决方案,如果发生任何异常,则应将其写入我的文本文件,其次程序不能停止,它必须继续直到最后一次迭代完成......即,如果任何迭代的任何部分发生错误,则必须在我的结果中以错误名称提及,并且程序必须不止于此,它必须继续更新我的日志文件

仅举个例子:因为我的课程大约有 1800 行,所以不能在这里全部粘贴。

float j,i,t;
int []a={1,2,0,3,4,5};
int []b={6,6,9,3,4,5};
for(int i=0;i<6;i++)
{
   j=2/a[i];
   i=3/b[i];
   t=4/b[i];

 }

所以这里由于数组值列表中的 0 发生异常,因此停止整个迭代,我希望跳过它,如果发生某些异常,则不能破坏循环,它只是省略了该异常部分并写入在文本文件上。

【问题讨论】:

标签: java exception


【解决方案1】:

试试这个:

float j;
int []a={1,2,0,3,4,5};
for(int i=0;i<6;i++)
{
    try{
        j=2/a[i];
    catch(Exception e){ //a more specific exception would be preferable, but I don't know what other exceptions may occur here
        System.out.println("Exception occurred at iteration: "+i);
    }
}

编辑:刚刚意识到,如果数组太小,打印语句中的值也可能导致异常。

第二次编辑:异常处理不如简单检查(即if(a[i] == 0))有效,因此使用检查将是解决此问题的更有效方法。

【讨论】:

  • 你把它放在循环中。就在显​​示的代码周围。
  • sry,我必须编辑部分,我在描述 que 时犯了一个大错误,请再次查看编辑部分...
  • 现在看,我必须得到所有结果,任何部分都可能发生异常,但我想要所有结果..我希望我的 prog 表现得聪明,把异常排除在外......没有影响其他值
  • 这只是一个例子,我的代码是关于更强大和不可预测的异常,它基于 java.net
  • 好的,如果有很多异常,请使用简单的检查。我还认为您应该像其他回答者所说的那样了解更多有关异常处理的信息。如果您的代码太杂乱以至于您无法确定异常可能在哪里,那么可能是时候清理一下了。
【解决方案2】:

我认为您应该阅读this question 的答案以了解有关异常处理的更多信息。

【讨论】:

    猜你喜欢
    • 2012-05-19
    • 2014-03-28
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多