Spec-Zone .ru
спецификации, руководства, описания, API
|
Когда сталкивающийся с выбором типа исключения, чтобы бросить, можно или использовать один записанный кем-то еще — платформа Java обеспечивает много классов исключений, которые можно использовать — или можно записать одно собственное. Следует записать свои собственные классы исключений, если Вы отвечаете на да на какой-либо из следующих вопросов; иначе, можно, вероятно, использовать чей-либо.
Предположите, что Вы пишете связанному списку class. class поддерживает следующие методы среди других:
objectAt(int n)
— Возвращает объект в n
позиция th в списке. Выдает исключение, если параметр - меньше чем 0 или больше чем число объектов в настоящий момент в списке.firstObject()
— Возвращает первый объект в списке. Выдает исключение, если список не содержит объектов.indexOf(Object o)
— Ищет список указанное Object
и возвращает его позицию в списке. Выдает исключение, если объект, который передают в метод, не находится в списке.Связанный список class может выдать многократные исключения, и было бы удобно быть в состоянии поймать все исключения, выданные связанным списком с одним обработчиком исключений. Кроме того, если Вы планируете распределить свой связанный список в пакете, весь связанный код должен быть упакован вместе. Таким образом связанный список должен обеспечить свой собственный набор классов исключений.
Следующее число иллюстрирует одну возможную иерархию class для исключений, выданных связанным списком.
Исключение в качестве примера иерархия class.
Любой Exception
подкласс может использоваться в качестве родительского class LinkedListException
. Однако, быстрое прочтение тех подклассов показывает, что они являются несоответствующими, потому что они или слишком специализируются или абсолютно не связаны с LinkedListException
. Поэтому, родительский class LinkedListException
должен быть Exception
.
Большинство апплетов и приложений, которые Вы пишете, бросят объекты, которые являются Exception
s. Error
s обычно используются для серьезных, серьезных ошибок в системе, таких как те, которые препятствуют тому, чтобы JVM работала.
Exception
к именам всех классов, которые наследовались (прямо или косвенно) от Exception
class.