您的异常应该命名为PrinterException还是PrintingException

时间:2011-02-02 12:53:28

标签: naming-conventions class-design

给出类似

的界面
Printer {
  print()
}

应该抛出PrinterException还是PrintingException。我想PrinterException更通用,因为它也可以用于实际上没有打印的打印机完成的方法,例如turnoff()。

如果打印机实际上有两种方法

,该怎么办?
Printer {
   shutdown() throws PrinterShuttingDownException;
   print() throws PrintingException
}

Printer {
   shutdown() throws PrinterException;
   print() throws PrinterException;
}

2 个答案:

答案 0 :(得分:1)

我认为PrinterException更好,因为它定义了与打印行为不一定相关的异常,如果参数不正确或者在某些不相关的问题(例如记录到文件时遇到问题)失败,则可能出现这种情况。

虽然,这是主观的,所以取决于你。

修改
如果你有两个操作,print和shutdown,那么print应该抛出PrintingException并且shutdown应该抛出一个PrinterShutdownException,这两个抛出都是从PrinterException派生的。这将允许您捕获特定情况或与打印机相关的任何异常。

答案 1 :(得分:0)

我总是有PrinterException。这是打印机抛出的异常。