java - 如何捕获 java 类方法抛出的异常

标签 java exception

我编写了一个 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/

相关文章:

java - Jpanel调整大小时如何使图像居中

java - 更改表格中的预览字体?

java - 如果 Java 中具有无限嵌套,如何遍历深度嵌套的 JSON?

java - 在java中单独访问列表元素时出现ClassCastException

c# dll microsoft dll 异常

java - 将字符串 XML 片段转换为 Java 中的文档节点

java - 标准差计算器 (Java)

java - GenericJDBCException 被 try/catch block 的错误部分捕获

c++ - 哪种数据类型不能在 C++ 程序中作为异常抛出

asp.net - ex 与 ex.ToString 之间有什么区别吗? ASP.NET