Вот значит шаблоны:
a) 1# : StringForFirstThreadTooShortException : java.lang.StringIndexOutOfBoundsException: String index out of range: -1
б) java.lang.StringIndexOutOfBoundsException: String index out of range: -1 : StringForSecondThreadTooShortException : 2#
в) RuntimeException : java.lang.StringIndexOutOfBoundsException: String index out of range: -1 : 3#
Скажите. При чем тут IndexOutOfBoundsException? И откуда число -1? И зачем нам писать во всех трех случаях "java.lang.StringIndexOutOfBoundsException: String index out of range: -1"? Почему в первом шаблоне имя нити в начале? Так должно быть?
BobaFoba
28 уровень
Не понимаю шаблон
Решен
Комментарии (9)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia VolkovaJava Developer в DXCMaster
17 февраля 2022, 11:15
Все данные, которые подставляются в шаблон, надо брать из нити (имя нити) и исключения (информация об ошибке)
У тебя три разных шаблона - поэтому и порядок в них разный.
0
BobaFoba
17 февраля 2022, 14:55
А почему в строке которую нам дали 3 элемента и 2 двоеточия
final String string = "%s : %s : %s";
А в третьем шаблоне 4 элемента и 3 двоеточия?
RuntimeException : java.lang.StringIndexOutOfBoundsException: String index out of range: -1 : 3#
name : simpleName : message : threadName
не подходит шаблон получается
или simpleName и message объединять в один?
0
Ksenia VolkovaJava Developer в DXCMaster
17 февраля 2022, 14:59решение
Потому что внутри элемента тоже может быть двоеточие.
Если у тебя в шаблоне 2 двоеточия, и в одном из подставляемых элементов двоеточие - то в результате их будет три.
На самом деле, если ты посмотришь внимательно на примеры - там в каждой строке по 4 двоеточия выходит.
+2
BobaFoba
17 февраля 2022, 15:28
Аааа
Так вот почему там нет пробелов перед двоеточиями
Вот теперь все сходится
Спасибо
0
BobaFoba
17 февраля 2022, 15:53
Только по условию это все нереально понять, потому что в одном шаблоне в качестве примера взяли два разных исключения, и как бы зачем
simpleName исключения StringForFirstThreadTooShortException, сразу за ним name исключения StringIndexOutOfBoundsException + message
Это создает много вопросов
Написано непонятно короч
0
Ksenia VolkovaJava Developer в DXCMaster
17 февраля 2022, 15:58
Это не два разных исключения, это один и тот же Throwable. Просто разные его части.
0
BobaFoba
17 февраля 2022, 19:37
StringIndexOutOfBoundsException и StringForFirstThreadTooShortException это разные классы. у них только предок общий. И получается мы берем информацию у двух разных объектов
Вот
a) 1# : StringForFirstThreadTooShortException : java.lang.StringIndexOutOfBoundsException: String index out of range: -1
0
Ksenia VolkovaJava Developer в DXCMaster
17 февраля 2022, 20:04
Нет, мы берем один объект - StringForFirstThreadTooShortException. Но внутри у него прячется StringIndexOutOfBoundsException
0
BobaFoba
17 февраля 2022, 20:19
Можно было и подсказать, что это не getSimpleName() + getMessage(), а просто getCause()
Долго топталась на месте из-за этого
Ну лан..
Спасибо
+1