java - 抛出多个异常

标签 java exception extends custom-exceptions

我有一个具有以下自定义异常结构的 Java 应用程序代码

  • SettlementException 扩展 Exception
  • PolicyMissingException 扩展 SettlementException
  • PolicyExpiredException 扩展 SettlementException

我的代码中有一些 try/catch block ,它们尝试 PolicyMissingPolicyExpired 并抛出相同的结果。

try
{
    if (Policy != null)
    {
        ...
    }
    else
    {
        throw new PolicyMissingException(“Policy missing”);
    }
}
catch(PolicyMissingException e)
{
  e.printstacktrace();
}

除了 PolicyMissingPolicyExpired 之外,还有什么方法可以抛出 SettlementException 吗?

最佳答案

下面的代码应该允许您捕获所有三个异常,并对每个异常执行一些操作。另请注意,“捕获”的顺序也很重要(请参阅本文下面的评论)

try
{
    if(Policy!=null)
    {
        ...
    }
    else
    {
        throw new PolicyMissingExc(“Policy missing”);
    }
}
catch(PolicyMissingExc e)
{
  e.printstacktrace();
}
catch(PolicyExpired c)
{
  //catch c here
}
catch(SettlementException b)
{
  //catch b here
}

关于java - 抛出多个异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25891317/

相关文章:

java - 使用 JSON-B 反序列化 JSON 数组

java - 找不到资源时抛出异常是否正确

c# - 在 C# 中针对现有文件的 CreateNew 的 FileStream 构造函数抛出异常

java - Java中关于多个类的继承

java - 如何在使用字符串分词器读取分数时忽略括号?

java - 运算符作为 java 中的变量名称与 c 中的 #define 相同

java - 将公共(public)父类(super class)的 Class 传递给 Function;函数应该检查对象是否是传递的类的实例

javafx - 使用父类(super class)扩展 javafx.application.Application。为什么子类中的 Override 会被忽略?

java - JNA 3.0.9 .so(64bit) 加载引用另一个 .so(64bit)

c# - HRESULT 异常 : 0xC00D36B4