Должны ли ваши исключения называться PrinterException или PrintingException - PullRequest
0 голосов
/ 02 февраля 2011

Учитывая интерфейс как

Printer {
  print()
}

если он выбрасывает исключение PrinterException или PrintingException. Я предполагаю, что PrinterException является более общим в том смысле, что его также можно использовать для методов, выполняемых принтером, который фактически не печатает, скажем что-то вроде turnoff ().

Что, если у принтера действительно есть два метода

Printer {
   shutdown() throws PrinterShuttingDownException;
   print() throws PrintingException
}

или

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

Ответы [ 2 ]

1 голос
/ 02 февраля 2011

Я бы сказал, что PrinterException лучше, потому что он определяет исключения, которые не обязательно связаны с актом печати, что возможно, если аргументы не верны, или он терпит неудачу из-за какой-то не связанной проблемы, такой как проблемы с записью в файл.

Хотя это субъективно, так что решать вам.

Редактировать:
Если у вас есть две операции, print и shutdown, то print должна выдать исключение PrintingException иshutdown должен выдавать исключение PrinterShutdownException, оба из которых будут производными от PrinterException.Это позволит вам отследить конкретные случаи или любые исключения, связанные с принтером.

0 голосов
/ 02 февраля 2011

У меня всегда будет исключение PrinterException.Это исключение, выброшенное принтером.

...