исключение kotlin, выданное в библиотеке Android, отображается как предупреждение вместо ошибки

#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) , произойдет следующее:

  1. исключение будет отображаться как ошибка в logcat.
  2. приложение завершит работу с ошибкой.

однако вместо этого исключение в logcat отображается как предупреждение, и приложение не завершает работу.

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

Комментарии:

1. Вы уверены, что приложение, которое вы используете для тестирования вашей библиотеки, не вызывает такого поведения?

2. Из какого потока вы его вызываете? Как правило, только исключения в основном потоке приводят к сбою всего приложения.

3. @PiotrK что вы имеете в виду? как это могло произойти? я использую отдельный модуль в том же проекте для тестирования, и я просто вызываю doSomething(2)

4. @RobPridham я пробовал как основной поток, так и фоновый поток. но даже если фоновый поток не приведет к сбою приложения, почему оно отображается как предупреждение, а не ошибка в logcat?

5. @RobPridham в том же проекте у меня есть 2 модуля. одно для библиотеки и один модуль «приложения» для тестирования (полностью написан мной в машинном коде).