抛出在Java中是如何工作的?

抛出在Java中是如何工作的?,java,throws,Java,Throws,我一直在用接球,现在我不得不用掷球。 这就是我所得到的,我无法找出缺少的东西,这样它就会起作用 public static void main(String args[]){ Exception_Tester et = new Exception_Tester(); int x1; int x2; x1=5; x2=0; et.printResults(x1,x2); } static void pr

我一直在用接球,现在我不得不用掷球。 这就是我所得到的,我无法找出缺少的东西,这样它就会起作用

public static void main(String args[]){

     Exception_Tester et = new Exception_Tester();   

     int x1;
     int x2;

     x1=5;
     x2=0;


     et.printResults(x1,x2);


    }
    static void printResults(int a, int b) throws ArithmeticException  {

     System.out.println("Add: "+(a+b));
     System.out.println("Sub: "+(a-b));
     System.out.println("Mul: "+(a*b));
     System.out.println("Div: "+(a/b));


    }

尝试在try语句中围绕a/b。
然后,在catch中,抛出异常。

您的printResults方法声明它可以抛出一个类型为arithmetricException的异常。为了实现这一点,需要在方法内部出错,例如,如果b参数为零,将引发异常。如果您想显式地抛出异常,您需要在方法中使用类似这样的抛出语句

throw new ArithmeticException();

在捕捉到异常之前。您的代码必须首先抛出异常。有时会出现运行时异常,代码本身会抛出这些异常。但有时,当某些条件变为真时,需要抛出一个自定义异常。为此,您可以使用这个throw关键字并为代码抛出一个异常来捕获它

这是一个样本

public Object pop() {
    Object obj;

    if (size == 0) {
        throw new EmptyStackException();
    }

    obj = objectAt(size - 1);
    setObjectAt(size - 1, null);
    size--;
    return obj;
}
它会按照习惯抛出异常,然后您就可以捕获它了

尽管如果堆栈为零。它可能不会抛出该异常。所以你自己让代码自己抛出这个异常,然后在某个地方处理它。为此,您将使用try{}catch{}


更多信息:

创建一个自定义异常类,并从您认为可能发生的任何地方抛出异常

 public class MyException extends Exception {
      public MyException(String message) {
      super(message);
     }
 }
例如,在方法中的除法运算中。你可以像…一样使用它

  static void printResults(int a, int b){

     if(b == 0 ) {
    throw new MyException("Division by Zero"); 
     } else {
     System.out.println("Div: "+(a/b));
     }


    }

也许可以帮助你。在什么方面它目前不工作?请张贴完整的源代码。Exception_Tester未定义,如果主方法的类是Exception_Tester,则应以静态方式调用et.printResultsx1,x2->Exception_Tester.printResultsx1,x2。在执行除法之前,请评估b是否为零。如果是,抛出一个新的算术异常,因为您不应该执行0除法。