Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 4

Вывод строки кода

06.02.2017, 17:00. Показов 690. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Столкнулся со следующей задачей:
При обработки исключения требуется выводить содержание строки (именно из нескомпилированного .java файла) в которой это исключение возникло, то есть не содержание объекта String, а конкретно строчку кода, например:
Java
1
asserTrue(text.contains("Ошибка 404"));
Есть такая идея реализации:
1. При обработки исключения из стека вызовов извлечь имя java-файла и номер строки, в котором возникло исключение
2. А дальше распарсить java файл и извлечь требуемую строку.
Но может быть есть уже какие-то готовые решения?
Подскажите пожалуйста.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.02.2017, 17:00
Ответы с готовыми решениями:

Вывод C# кода из строки(Стринг)
Народ, помогите! Буду признателен :) У меня в String находится небольшой код C#, как мне его «Вывести» в код? Пример: String name...

Вывод определенной строки HTML кода
Здравствуйте! Есть HTML код. В нём, например 5 строк: 1111 222 3333 4444 5555 Как сделать, что бы при нажатии на кнопку...

Строки: вывод кода введенного пользователем символа
Написать программу, которая выводит код введенного пользователем символа. Программа должна завершать работу в результате ввода, например,...

8
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
06.02.2017, 17:06
maseilb, зачем вам подобное извращение? Исходного кода нет в программе когда она выполняется.
0
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 4
06.02.2017, 17:51  [ТС]
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
maseilb, зачем вам подобное извращение? Исходного кода нет в программе когда она выполняется.
Просто в логе от такой строки выдается что-то подобно: "expect true but found false", а вот какое именно выражение мы подавали для проверки его истинности не выдается. Поэтому и хотел бы получать саму строку. Конечно, можно самому добавить сообщение путем расширения ассерта подобно:
Java
1
2
3
String text_error = "Ошибка 404";
assertTrue(text.contains(text_error), "начинаем проверку содержания в тексте " + text + 
    " текста ошибки " + text_error );
и чтобы в случае исключения вывелось это сообщение. Но просто таких ассертов очень много в проекте и поэтому хочется как то универсально это обработать.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
06.02.2017, 19:01
Цитата Сообщение от maseilb Посмотреть сообщение
Конечно, можно самому добавить сообщение путем расширения ассерта
это верный путь.
Цитата Сообщение от maseilb Посмотреть сообщение
Но просто таких ассертов очень много в проекте
надо все время следить что тесты пишутся нормально и тогда проблем не будет.
1
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,765
06.02.2017, 21:49
maseilb, не понял, а чем собственно сам стэктрейс не устраивает?
0
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 4
07.02.2017, 10:56  [ТС]
Добавлено через 13 минут
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
это верный путь.

надо все время следить что тесты пишутся нормально и тогда проблем не будет.
Хорошо, спасибо за совет!

Добавлено через 5 минут
Цитата Сообщение от korvin_ Посмотреть сообщение
maseilb, не понял, а чем собственно сам стэктрейс не устраивает?
Если не ошибаюсь, то в стеке я не смогу увидеть то выражение, истинность которого мы проверяем, а именно:
Java
1
text.contains(text_error)
будет только указание на строку и имя класса, а также сообщение из серии "expect true but found false"
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,765
07.02.2017, 21:04
Цитата Сообщение от maseilb Посмотреть сообщение
будет только указание на строку и имя класса
Так а в чём проблема перейти к этой строке?
0
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 4
08.02.2017, 13:23  [ТС]
Цитата Сообщение от korvin_ Посмотреть сообщение
Так а в чём проблема перейти к этой строке?
Хотелось бы автоматизировать этот переход и выводить эту строчку сразу в лог. Если дадите рекомендацию как это сделать, буду признателен
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,765
08.02.2017, 19:32
Цитата Сообщение от maseilb Посмотреть сообщение
Хотелось бы автоматизировать этот переход
Э-м… Просто кликаешь по ней и всё.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.02.2017, 19:32
Помогаю со студенческими работами здесь

Отладка кода - вывод номера строки, вызвавшей ошибку
ДД! Нужно отладить код. В приведенном коде при отладке будет выводиться одно и то же сообщение. А можно ли сделать так, чтобы в...

Организация кода, вывод строки в консоли, использование extern
Windows 7, Visual Studio 2013. В проекте файлы:// TestCpp.h using namespace std; extern settings set; bool TestCpp() { ...

Вывод scan кода и ascii кода нажатой клавиши
Подскажите пожалуйста, как реализовать вывод scan кода и ascii кода нажатой клавиши в ассемблерной вставке в c++ builder 6

вывод кода мнемоники,а не его реальный вывод
Добрый день! Есть html разметка с текстом, например: <b>Привет мир!</b>  В конце текста стоит мнемоника пробела   ...

Вывод массива и вывод строки, где меньше всего переходов с - на + и с + на -
Как изменить этот код, чтобы пользователь сам мог вводить количество столбцов и строк в массиве #include <stdio.h> #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru