【问题标题】:How not to print exception on console如何不在控制台上打印异常
【发布时间】:2023-03-10 06:03:01
【问题描述】:

我实现了自己的自定义异常。我不希望它在框架控制台上打印异常。可能吗?

2017 年 5 月 15 日 2:47:24 PM org.apache.catalina.core.StandardWrapperValve 调用 严重:servlet[project - services] 的 Servlet.service() 在路径 [/project-services] 的上下文中抛出异常 [请求处理失败;嵌套异常是 ba.project.exception.TAException:在所选日期之间没有任何旅游活动。] 根本原因 ba.project.exception.TAException:在所选日期之间没有任何旅游活动。在 ba.project.service.TAServices.findByTourTypeWithDates(TAServices.java: 94)

自定义异常:

 public class TAException extends RuntimeException {

  private static final long serialVersionUID = 1 L;

  public TAException(String msg) {
    super(msg);
  }

  public TAException(String msg, Throwable e) {
    super(msg, e);
  }
}

这是我抛出异常的方法:

public List < Object > findByTourTypeWithDates(String tourType, Date checkin, Date checkout)
throws ParseException, TAException {
  SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");

  Date todayDate = dateFormatter.parse(dateFormatter.format(new Date()));
  if (checkin.after(todayDate)) {
    return taDAO.findByTourTypeWithDates(tourType, checkin, checkout);
  }
  throw new TAException("There is no any tour activity between selected dates.");
}

【问题讨论】:

标签: java spring


【解决方案1】:

看看Java Exception的规范

https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html

我认为您正在搜索的是 writableStackTrace,如果需要,您可以将其设置为 false。或者您可以覆盖 getMessage 以检查您的包裹或类似的东西。这取决于您的具体需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2013-09-21
    • 2022-07-05
    • 2021-05-17
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多