我编写了一个 Java 类,如果提供错误的输入,它会引发异常。
我编写了一个主程序,其中我希望如果我的类调用抛出异常,那么我的主类不应显示抛出的错误消息,而应显示“发生错误”字符串。
我的主程序:
public class TestAbstractFunction {
public static void main(String[] args) {
// TODO Auto-generated method stub
AbstractFunction l = new LogFunction();
System.out.print(l+" = ");
System.out.println(l.eval(2));
AbstractFunction si = new SineFunction();
System.out.print(si+" = ");
System.out.println(si.eval(60));
AbstractFunction c1 = null;
for(double i=-10;i<=10;){
try{
c1 = new CompositeFunction(si,l);
}catch(Exception e){
System.out.println("Err");
}
System.out.print(c1+" = ");
double value = c1.eval(i);
value = value + s.eval(i);
System.out.println("f(x) = "+value);
i = i+0.5;
}
}
LogFunction Java 类中的方法抛出非法参数异常:
// concrete implementation of eval for computing square root
@Override public double eval(double x) throws IllegalArgumentException {
if (x < 0) throw new IllegalArgumentException("Log of negative number is undefined.");
return Math.log10(x);
}
现在我试图在我的主要方法中捕获这个异常。我已经使用 try catch 来执行此操作,但编译器仅显示非法参数异常,而不是我的 catch 字符串。
感谢您对我可能做错的事情提出的宝贵意见。
谢谢!!
最佳答案
你可以这样放置你的代码
for(double i=-10;i<=10;){
try{
c1 = new CompositeFunction(si,l);
System.out.print(c1+" = ");
double value = c1.eval(i);
value = value + s.eval(i);
System.out.println("f(x) = "+value);
i = i+0.5;
}catch(Exception e){
System.out.println(e.getMessage());
}
}
关于java - 如何捕获 java 类方法抛出的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33421824/