#android #exception #kotlin #runtime-error #logcat
#Android #исключение #kotlin #время выполнения-ошибка #logcat
Вопрос:
я работаю над библиотекой Android, написанной на kotlin, и в ней я хочу создать исключение. допустим, моя библиотека содержит функцию, которая принимает Int
в качестве параметра, а число 2 по какой-либо причине является незаконным… поэтому я бы:
fun doSomething(value: Int)
{
if(value == 2)
throw IllegalArgumentException("the number 2 is not allowed in this function")
else
//do something
}
я ожидал бы, что если я вызову doSomething(2)
, произойдет следующее:
- исключение будет отображаться как ошибка в logcat.
- приложение завершит работу с ошибкой.
однако вместо этого исключение в logcat отображается как предупреждение, и приложение не завершает работу.
почему это происходит? как я могу заставить исключение отображаться как ошибка?
Комментарии:
1. Вы уверены, что приложение, которое вы используете для тестирования вашей библиотеки, не вызывает такого поведения?
2. Из какого потока вы его вызываете? Как правило, только исключения в основном потоке приводят к сбою всего приложения.
3. @PiotrK что вы имеете в виду? как это могло произойти? я использую отдельный модуль в том же проекте для тестирования, и я просто вызываю
doSomething(2)
4. @RobPridham я пробовал как основной поток, так и фоновый поток. но даже если фоновый поток не приведет к сбою приложения, почему оно отображается как предупреждение, а не ошибка в logcat?
5. @RobPridham в том же проекте у меня есть 2 модуля. одно для библиотеки и один модуль «приложения» для тестирования (полностью написан мной в машинном коде).