Какое исключение я должен бросить - PullRequest
0 голосов
/ 27 августа 2018

Я новичок и изучаю исключения Java,

public void function (argument) {
     if (condition) {
        throw new Exception;
     }
}

Моя путаница:

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

Что, если код выдаст некоторые исключения, которые я не ожидал, или скажу, что я не знаю, что такое исключения из моего кода, что я должен выбросить?

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

, но если вход делает вопросзаблуждение, но я сам не знаю, что этот ввод вызовет это заблуждение, что я должен выбросить?

Или мне нужно выполнить достаточно тестов, чтобы найти все исключения и выбросить их?

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

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Источник: Oracle - Учебные руководства по Java - " Что такое исключение? ":

"После того, как метод выдает исключение, система времени выполнения пытается найти что-то дляобработать его. Множество возможных «что-то» для обработки исключения является упорядоченным списком методов, которые были вызваны для получения метода, в котором произошла ошибка. ".

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

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

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

Источник: Oracle - Руководства по Java - " Непроверенные исключения - Противоречие ":

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

Попробуйте предсказать, что может произойти , и обработайте, если это возможно, 1024 *, всегда стараясьпусть вызывающая сторона выполнит работу, если она дублирована в нескольких вызываемых пользователях, и «листья дерева поймают light work».

Или мне нужно выполнить достаточно тестов, чтобы найти всеисключения и выбрасывать их?

Написание тестового жгута может быть отделено или частью кода, если оно внутреннее, то обычно (но не всегда) вы хотите определить его вне релизной версии.

0 голосов
/ 27 августа 2018

Я думаю, что должно быть сгенерировано исключение:

  • , если функция не может удовлетворить установленное условие

  • она не может удовлетворить предварительное условиефункцию, которую он собирается вызвать

  • , если это может вызвать нестабильность для других членов

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...