Я объясню, что я имею в виду при проверке ошибок ввода.
Скажем, у вас есть функция doSomething(x)
.
Если функция успешно завершена, doSomething
что-то делает и ничего не возвращает. Однако, если есть ошибки, я хотел бы получить уведомление. Это то, что я имею в виду при проверке ошибок.
Я ищу, в общем, лучший способ проверить ошибки. Я думал о следующих решениях, каждый из которых имеет потенциальную проблему.
-
Проверка ошибок флага. Если
doSomething(x)
завершает успешное возвращениеnull
. В противном случае он возвращает логическую или ошибку. Проблема: Побочные эффекты. -
Выбрасывание исключения. Выбросить исключение, если
doSomething(x)
обнаруживает ошибку. Проблема: Если вы выполняете проверку ошибок только для параметров, бросаниеIllegalArgumentException
кажется неуместным. -
Проверка ввода перед вызовом функции. Если проверка ошибок предназначена только для параметров функции, вы можете вызвать функцию валидатора перед вызовом функции
doSomething(x)
. Проблема: Что делать, если клиент класса забывает вызывать функцию проверки подлинности перед вызовомdoSomething(x)
?
Я часто сталкиваюсь с этой проблемой, и любая помощь или точка в правильном направлении будут высоко оценены.