| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java ME (J2ME) > Об исключениях |
| Автор: Antropoid 11.10.2006, 17:07 |
| java.lang.IllegalArgumentException at ua.odesa.TimerForPosition.timeMode(+48) что такое "+48"? |
| Автор: jitm 11.10.2006, 17:19 |
| Интерестно, а почему вас не заинтересовало что такое java.lang.IllegalArgumentException ??? |
| Автор: Antropoid 11.10.2006, 18:01 |
| Еще ответы будут? |
| Автор: mr.DUDA 11.10.2006, 18:08 |
| Номер строки или инструкции в байт-коде, вестимо |
| Автор: jitm 11.10.2006, 18:13 |
| зачем ва это???!!! |
| Автор: chief39 11.10.2006, 18:26 |
Пока - нет. Будут вопросы: сигнатура метода ua.odesa.TimerForPosition.timeMode() ? и на всяк случай, в предверии будущих вопросов - что такое +48? Шаманов мало, поэтому никто не догадается откуда именно магическое 48. Это легче узнать человеку у которого этот код перед глазами. И показать. Или объяснить, если код - тайна |
| Автор: Antropoid 11.10.2006, 18:59 |
| Мдя...не думал, что ответы будут такими...тогда перефразирую: , что означает N java.lang.IllegalArgumentException at ua.odesa.TimerForPosition.timeMode(+N), где N - натуральное число. mr.DUDA, спасибо, ты единственный разобрался с тупым вопросом - т.е. для отладки эта информация будет бесполезной? зачем мне знать в какой строке байт-кода происходит исключение? |
| Автор: jitm 11.10.2006, 19:08 |
| Понимаешь, если бы был у тебя в описании ексепшиона какой -то стандартизированый , известный всем символ либо строка тогда тебе с удовольствием помогли бы, а ты спросил что такое +48, это всёравно что незная определения задачи в середине рашения спросить а что такое 3450, от куда кто -то может это знать кроме того кто её решает.., так что какой вопрос такие и ответы . |
| Автор: chief39 11.10.2006, 19:12 | ||
При компиляции в байт-код включается информация о номерах строк. Можно её отключить опцией javacc (какой - погляди, если интересно) Если не отключена - тогда номер строки в байт-коде указывает на номер строки в том исходнике, из которого байт-код был создан. Ну и, ессно, если исходник после этого поменять, а байт код останется старым - этот номер будет показывать в небо |
| Автор: COVD 11.10.2006, 19:22 |
| Обычно цифра указывает на номер строки в коде, где выброшено исключение. Это помогает при анализе. Но плюсов перед цифрой я не видел. |
| Автор: 3x3 11.10.2006, 19:39 | ||
Это исключение скорее всего бросает помянутая функция. Допустим её параметром может быть смещение часового пояса, т.е. в пределах +-12. Ну она проверяет чо ты туда сунул и ругается, что ты передал неправильный параметр. |
| Автор: Antropoid 11.10.2006, 20:51 | ||
дело идет о j2me, но вопрос все же общий, поэтому имхо этот раздел форума самый подходящий
к сожалению - нет...в исходнике строки с такими номерами абсолютно безобидны, а может дело действительно в j2me?!!... |
| Автор: powerOn 11.10.2006, 21:02 |
Ага, попался! |
| Автор: jitm 12.10.2006, 13:09 | ||
Я извиняюсь за вчерашний напор по поводу чисел.., я не совсмем понял что вы хотите узнать .. |
| Автор: jitm 12.10.2006, 13:31 | ||
У вас слкчайно не printStackTrace() выводит это сообщение .. ?
|
| Автор: Antropoid 12.10.2006, 17:00 |
именно он. |
| Автор: jitm 12.10.2006, 17:33 |
смотрите класс Throwable метод printStackTrace() ну и строчку 48 где err.println(); тоесть место печати ошибки .. , ребус разгадан .. |
| Автор: Antropoid 12.10.2006, 18:39 |
| Хм...а могу ли я как-то узнать в какой строчке моего кода выскачило Exception? |
| Автор: Nemesis 12.10.2006, 18:39 |
| Странно, по-моему, mr.DUDA, дал внятный ответ. java.lang.IllegalArgumentException at ua.odesa.TimerForPosition.timeMode(+48) что такое "+48"? Число "48" просто указывает смещение от начала функции timeMode. Смещение указывается в качестве порядкового номера инструкции JVM в текущей функции. |
| Автор: Antropoid 12.10.2006, 18:41 | ||
это абсолютно не верно. |
| Автор: jitm 12.10.2006, 19:09 |
| покажи свой код. вернее ту часть где ругаеться |
| Автор: Nemesis 12.10.2006, 19:24 |
| это абсолютно не верно прочитайте пожалуйста внимательнее что я написал. Смещение указывается в качестве порядкового номера инструкции JVM в текущей функции. А не в качестве номера строки в вашем редакторе. |
| Автор: jitm 12.10.2006, 19:35 |
| Хм, а если одинаковое количество строчек в коде то смещение по вашему должно быть одинаково . .? Я правильно понял?? |
| Автор: Nemesis 12.10.2006, 20:13 | ||||
| Кол-во строчек и кол-во инструкции совершенно разные вещи. Вот вам пример:
казалось бы 2 строки.. а вот инструкции:
6 инструкций. |
| Автор: Antropoid 12.10.2006, 22:21 |
| Nemesis, я не прошу помочь мне устранить ошибку, - я прошу помочь понять, как интерпретировать эту ошибку? т.е. число "+48" - бесполезно для меня? |
| Автор: Dancer 13.10.2006, 10:25 |
| Во первых! Покажи весь стек ошибок. Во-вторых, покажи код, где это у тебя происходит. Без этого, мы будем тут ходить все вокруг и около. Если не хочешь (по каким бы то нибыло причинам), то можно считать вопрос закрытым, потому что это почти что похоже на принеси ТО, не знаю что, и иди ТУДА не знаю КУДА. Может быть ты ствой стек не правильно читаешь, ты видишь это в самом верху (первой строкой), а стек в Java нужно начинать смотреть с конца, то есть с последней операции которая привела к ошибке. Так что, приведи ПОЛНОСТЬЮ стек ошибок. |
| Автор: Antropoid 14.10.2006, 20:57 |
| Ладно, закрыли тему...но я так ничего и не понял... |
| Автор: COVD 14.10.2006, 21:32 | ||
И зачем это надо знать? Полезно знать место, откуда выброшено. PS. не заметил, что есть продолжение на другой странице |
| Автор: javastic 16.10.2006, 12:35 |
| Мнда.... Филосовская тема какая-то получилась..... |
| Автор: Antropoid 17.10.2006, 21:55 |
| Ага! А главное воз и ныне там... |