Есть ли способ указать на код, в котором произошла ошибка в Rust?

#error-handling #rust

#обработка ошибок #Ржавчина

Вопрос:

У меня есть строка и файл, в которых произошла ошибка, используя line! file! макросы и соответственно. Компилятор Rust может точно указать, где произошла причина ошибки в исходном коде. Есть ли способ указать на определенную область в коде, где line = line! и file = file! ?

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

1. Что именно вы подразумеваете под «указывать на»? Если у вас есть файл и строка, что еще вы надеетесь получить?

2. Я хотел бы указать на точный код, в котором происходит ошибка. Например: play.rust-lang.org /… показывает, где выдается ошибка. Это из-за } . Я хотел бы выдать аналогичную ошибку компилятора.

3. Пожалуйста, будьте более конкретными. Какая ошибка? A Result ? Или a panic ? Вы имеете в виду, что во время компиляции вы хотите напечатать ошибку или во время выполнения? Этот вопрос очень неясен.

4. Пожалуйста, приведите пример, который показывает, что вы имеете в виду, что вы пробовали до сих пор, и почему это не дает ожидаемого результата.

Ответ №1:

Не совсем понятно, что вы пытаетесь сделать, но я думаю, что вы ищете ящики, которые могут форматировать сообщения об ошибках, например, компилятор Rust:

или вы можете взглянуть на исходный код для сообщения об ошибках в компиляторе Rust, но он использует свой собственный модуль, который нельзя использовать извне самого компилятора.

Ответ №2:

В Visual Studio Code панике вы можете удерживать Ctrl и нажимать на номер строки, и он перейдет к строке в редакторе.

Например, когда вы запускаете свою программу во встроенном терминале, вы можете получить:

 thread 'main' panicked at 'explicit panic', src/main.rs:27:5
                                                 ^
                                                 |
                                     CLICK HERE -/