如何在Java中创建自定义异常?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (30)

如何在Java中创建自定义异常?

提问于
用户回答回答于

例如:

public class FooException extends Exception {
  public FooException() { super(); }
  public FooException(String message) { super(message); }
  public FooException(String message, Throwable cause) { super(message, cause); }
  public FooException(Throwable cause) { super(cause); }
}

可能引发或传播此异常的方法必须声明:

public void calculate(int i) throws FooException, IOException;

调用此方法的代码必须处理或传播此异常

try {
  int i = 5;
  myObject.calculate(5);
} catch(FooException ex) {
  // Print error and terminate application.
  ex.printStackTrace();
  System.exit(1);
} catch(IOException ex) {
  // Rethrow as FooException.
  throw new FooException(ex);
}

方法可以抛出或传播FooRuntimeException而不声明;

public void calculate(int i) {
  if (i < 0) {
    throw new FooRuntimeException("i < 0: " + i);
  }
}

未检查的异常通常用于表示程序员错误,例如将无效参数传递给方法或试图破坏数组索引界限。

用户回答回答于
public class MyException extends Exception {
        // special exception code goes here
}

把它扔给:

 throw new MyException ("Something happened")

捕获为:

catch (MyException e)
{
   // something
}

扫码关注云+社区

领取腾讯云代金券