Java异常消息在堆栈跟踪中仍然具有java.lang.Exception

时间:2019-01-10 18:32:46

标签: java

在我的Java应用程序中,我有一个实用程序类,该类具有可在任何情况下使用的全局方法。实用程序类具有一个方法,如果配置错误,则会向父类抛出Exception。因此,对于此示例,我正在检查结束日期是否晚于开始日期,然后再将其写入Redis缓存:

public static boolean writeDates(Date date1, Date date2) throws Exception {

    boolean datesAreWrong = false;
    //Check dates are in correct format
    if(dateFormatIsWrong) {
      throw new Exception("Dates are not formatted correctly!");
    }
    //Check if dates are correct
    else if(datesAreWrong) {
       throw new Exception("Start date is set after the End Date!");
    }
    else {
       //write to Redis Cache
    }
}

然后,每当我调用此方法时,它看起来就像:

public MyResponseObject writeDateToRedis(Date date1, Date date2) {

    MyResponseObject myResponseObject = new MyResponseObject();
    try {
      //config code
      myUtilClass.writeDates(date1, date2);
      //...
    }
    catch (Exception e) {
      myResponseObject.setResponseCode(myConstants.failure_code);
      myResponseObject.setDescription("Error: " + e.getMessage());
    }
 }

代码工作正常,只是因为我们开始将错误消息打印到UI,它将显示为“错误:java.lang.Exception:开始日期设置在结束日期之后!”。以获得更好的可读性和……美观?我想从用户错误消息中隐藏java.lang.Exception。

1 个答案:

答案 0 :(得分:0)

创建您自己的异常类,并从Exception继承。这样您就可以满足您的所有需求。