2013-11-09 2 views
0

Вот пример кода, я выбрасываю здесь исключение, он отлично работает без блока try/catch по какой-либо причине.Метод с выбросами Исключение: где он фактически обрабатывается?

Должен ли я обрабатывать это внутри этого метода «EntryDelete» или Должен ли я обрабатывать это, когда вызывается метод? Если я могу увидеть пример, что мне нужно импортировать там? Каков приемлемый синтаксис или метод для этого?

public boolean EntryDelete(int entryId) throws SQLException{ 
    this.open(); 
    kDatabase.delete(kENTRY_TABLE, kENTRY_ENTRY_ID + "=" + entryId, null); 
    this.close(); 
    return true;    
} 

Редактировать: Что думает над обработкой исключения как внутри, так и снаружи метода?

Каковы преимущества обработки внутри метода, каковы преимущества его обработки за пределами метода?

Благодаря

+1

Преимущество простое, это заставляет вызывающего пользователя уловить возможное исключение и теоретически ведет к лучшему коду. Однако 'e.printStackTrace()' представляется средним обработчиком исключений. – Simon

ответ

1

Заброшенная исключение обрабатывается (брошенные дальше или пойманы), вызывающей этого метода здесь, а не сам по себе этот метод. Конечно, вы можете справиться и с этим здесь, добавив здесь try-catch, но поскольку в настоящее время ваш метод заставляет вызывающего пользователя обрабатывать возможное исключение.

В ответ на Ваш вопрос: добавленный

«? Что преимущества обработки внутри метода, Что преимущества работы с ней за пределами методы»

К сожалению, наиболее полный правильный ответ, который я могу придумать, заключается в том, что преимущество иметь дело с исключением внутри метода заключается не в том, чтобы иметь дело с ним вне метода. В общем, чем скорее вы справитесь с этим исключением, тем лучше, потому что вы обычно не хотите принуждать кого-либо, призывающего ваши методы к подготовке к любым исключениям, которые не являются строго необходимыми.

1

Поскольку метод имеет

throws SQLException 

в подписи поэтому метод вызова этого метода будет обрабатывать исключение.

EDIT: Там нет правила, но from вы можете использовать следующую директиву

Если клиент может занять некоторое альтернативное действие, чтобы оправиться от исключения, а затем бросить исключение. Если клиент не может сделать ничего полезного, обработайте исключение. К полезным, я имею в виду принятие мер для восстановления из исключения, а не только для регистрации исключения.

Смежные вопросы