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