Я пытаюсь написать класс BrokenObjectException, производный от Exception.Но в Eclipse я получаю эту ошибку:
Сериализуемый класс BrokenObjectException не объявляет статическое окончательное поле serialVersionUID типа long
public class BrokenObjectException extends Exception
{
BrokenObject(String message)
{
;
}
}
Я не понял, почему этопросит меня объявить поле.Разве интерфейс не должен просто объявить некоторые методы?В любом случае я хочу иметь этот класс, потому что я хочу поймать его не так, как я перехватываю все исключения, из моего примера у меня есть блок:
try
{
if(...)
throw new Exception("wrong");
if(...)
throw new BrokenObjectException("wrong");
}
catch(BrokenObjectException e)
{
// do something (action1)
throw e;
}
catch(Exception e)
{
// so something (action2)
throw e;
}
Итак, в первом блоке перехвата я написал "сделай что-нибудь".Это связано с тем, что в зависимости от типа создаваемого исключения я хочу выполнять различные действия.Таким образом, поскольку BrokenObjectException является производным от Exception, его следует перехватывать два раза.Но если выдается BrokenObjectException, я хочу сделать action1 и action2, если выдается только обычное исключение, я хочу просто сделать action2.Это возможно?И как исправить полученную ошибку?