2016-11-26 207 views
-2

我正在使用Java的抵押计算器。我必须使用try和catch块来验证数据。我完成了程序的其余部分,但我无法弄清楚如何实现try和catch块。以下是提示所要求的内容:在Java中抛出异常

“编写自己的例外以使用try和catch块验证数据,例如贷款金额不能是负数,它应该在$ 5000和$ 1,000,000之间。

编辑:这是最后工作的try-catch块。它需要放置在其余数据所在的actionPerformed方法中。我还遇到了另一个问题,即代码一直在抛出任何我输入的数量的异常,直到我发现我需要将for循环放入try块。

try 
    { 
     if((n1 < 5000) || (n1 > 1000000)) 
     throw new Exception(); 

     for (int i = 0; i < term[0] * 12; i++) 
     { 
     double interest_paid = n1 * (rate[0]/12); 
     double principal_paid = tr1 - interest_paid; 
     n1 = n1 - principal_paid; 

     //Prints the results. 
     edit.append("\n " + (i+1) + " \t\t " + (two.format(interest_paid)) 
      + " \t\t " + (two.format(principal_paid)) + " \t\t " 
       + (two.format(Math.abs(n1))));    
     } 
    } 
    catch (Exception e) 
    {   
     edit.setText("Please enter an amount between $5,000 and $1,000,000.");  
     mortText.setText(""); 
     out.setText("");     
    } 
+1

点击“编辑”链接?无论如何,即使使用正确的缩进也很难阅读。目前还不清楚问题是什么 - 验证并且如果存在验证错误,则抛出异常。放在任何你将验证调用到一个'try'块中,捕获异常并适当地执行。具体问题是什么? –

+0

你还没有尝试过任何东西。让我们看看你的努力到目前为止 –

+1

@Moose总的来说,我们试图保持这样的问题,问题 - 不是无关的评论:)幽灵工人的评论是针对那里没有任何任何try/catch声明。换句话说,*尝试*某事。 “如何做到这一点”我在我的第一个评论中解释了很多 - 因此询问*特定问题是什么。 –

回答

0

下面是最后工作的try-catch块。它需要放置在其余数据所在的actionPerformed方法中。我还遇到了另一个问题,即代码一直在抛出任何我输入的数量的异常,直到我发现我需要将for循环放入try块。

try 
{ 
if((n1 < 5000) || (n1 > 1000000)) 
    throw new Exception(); 

    for (int i = 0; i < term[0] * 12; i++) 
    { 
    double interest_paid = n1 * (rate[0]/12); 
    double principal_paid = tr1 - interest_paid; 
    n1 = n1 - principal_paid; 

    //Prints the results. 
    edit.append("\n " + (i+1) + " \t\t " + (two.format(interest_paid)) 
     + " \t\t " + (two.format(principal_paid)) + " \t\t " 
      + (two.format(Math.abs(n1))));    
    } 
} 
catch (Exception e) 
{   
    edit.setText("Please enter an amount between $5,000 and $1,000,000.");  
    mortText.setText(""); 
    out.setText("");     
}