Ошибки - неотъемлемая часть жизни любого разработчика. В этой статье мы поговорим о том как получить больше информации о специфических ошибках в Rust.
Код ошибки и помощь компилятора#
Когда компилятор Rust отображает ошибку, он также предоставляет код ошибки. Например может возникнуть такая:
For more information about this error, try 'rustc --explain E0425'
Компилятор предлагает использовать команду rustc --explain с кодом ошибки для того чтобы увидеть больше информации об этой ошибке.
rustc - это команда запуска Rust компилятора. Вы можете использовать также команду cargo вместо неёДавайте попробуем запустить эту команду в терминале. Вывод будет таким:
An unresolved name was used.
Erroneous code examples:
something_that_doesnt_exist::foo;
// error: unresolved name something_that_doesnt_exist::foo
// or:
trait Foo {
fn bar() {
Self; // error: unresolved name Self
}
}
// or:
let x = unknown_variable; // error: unresolved name unknown_variable
Please verify that the name wasn't misspelled and ensure that the identifier being
referred to is valid for the given situation...
В результате мы получаем подробную документацию по этой ошибке с примерами и предложениями по исправлению. Удобно, что вся информация доступна в терминале и нам не нужно покидать среду разработки.
Для наглядности давайте посмотрим на интерактивный пример этой ошибки и её исправления:
Еще один частый гость: Ошибка E0308 (Несоответствие типов)#
Другой популярной ошибкой, с которой часто сталкиваются новички, является несоответствие типов (E0308). Rust — язык со строгой статической типизацией. Он не выполняет неявные преобразования за вас (например, он не превратит число с плавающей точкой в целое число автоматически).
Давайте посмотрим на интерактивном слайде, как выглядит эта ошибка и как её исправить:
Альтернативные варианты#
Хотя поиск ответа через GPT/ИИ может казаться быстрым решением, важно быть осторожным и не полагаться на нейронные сети, которые могут галлюцинировать. Использование rustc --explain в сочетании со справочными материалами — гораздо более надёжный и глубокий способ обучения.
Онлайн-ресурсы#
Если вы перейдете по ссылке Rust Code Errors, то увидите перечень всех кодов возможных ошибок. Кроме того, на сайте вы можете запустить пример кода и увидеть вывод компилятора для конкретной ошибки.
Советы для начинающих#
Чтобы действительно научиться работать с ошибками, не стоит просто исправлять их и двигаться дальше. Вместо этого, на первых порах, следуйте простому алгоритму:
- Исправьте ошибку.
- Напишите маленькую программу, которая позволит воспроизвести ту же ошибку компилятора.
- Подумайте еще раз об этой ошибке и попробуйте объяснить себе, почему она произошла и как принято её решать.
- Погуглите и поищите помощи на ресурсах и в сообществах, если всё ещё не до конца разобрались.
Следуя этому алгоритму, вы не только исправите ошибку, но и получите более глубокое понимание языка.
Вывод#
Теперь, когда у вас возникнет ошибка компиляции, вы знаете, где можно найти помощь, не покидая среду разработки. Компилятор Rust — ваш надежный и верный помощник.
В последующих статьях нам ещё не раз предстоит столкнуться с ошибками компилятора, но вы уже вооружены отличным инструментом для их расшифровки и исправления.
Проверь свои знания!#
Пройдите короткий интерактивный тест, чтобы закрепить понимание работы с ошибками компилятора в Rust.
История обновлений
- Добавил раздел про кастомные типы ошибок и использование макроса
panic!.


