TGViewer
Rust Rust @rust_code · 8.92K subscribers
Post #1143 5.12K
👣 Отличный пример того, как anyhow делает ошибки в Rust понятнее.

Код на скриншоте показывает, что каждая функция добавляет свой контекст, и в итоге при падении мы видим полную цепочку причин, а не просто финальную ошибку.

Что происходит:
hello0 выбрасывает ошибку с текстом "!!!!!".
hello1 вызывает hello0 и добавляет свой контекст "world".
hello2 вызывает hello1 и добавляет контекст "hello".
main вызывает hello2 и при ошибке печатает весь стек причин.

Что такое цепочка причин:
Это последовательность контекстов, которые добавлялись на каждом уровне вызовов.
Благодаря этому видно не только то, что сломалось, но и где именно.
Каждый уровень в стеке — это подсказка:
какая функция работала,
какой контекст она добавила,
и что пошло не так в конечном итоге.

Вывод при запуске:
hello
Caused by:
0: world
1: !!!!!

Как это читать:
Сверху -контекст "hello".
Под ним - контекст другой функции "world".
А внизу - исходная причина ошибки "!!!!!".

Такой подход делает отладку проще:
видно весь маршрут ошибки — от места падения до верхнего уровня.

#rust #junior
  • 👍 28
  • ❤ 8
  • 🥰 3
  • 😢 1
More from @rust_code
  1. Sep 26, 2026Как создать пустой vector по-гениальному
  2. Sep 24, 2026🦀 Как доказать, что Rust-код работает правильно: Amazon рассказывает о Verus Rust предотв…
  3. Sep 24, 2026❌В IT сейчас кризис джунов, но только не в кибербезе. ❗️Рынку не хватает 50 000 специалист…
  4. Sep 24, 2026Rust без аллокатора: `fff` снизил пиковое потребление памяти через `mmap` Во время тестиро…
  5. Sep 23, 2026photo post
  6. Sep 20, 2026Zero cost
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →