Веб-версияОткрыть в Telegram

Пост🦀 Error Handling: Библиотеки против Приложений

20 августа 2026
R
Rust
🦀 Error Handling: Библиотеки против Приложений Часто вижу в код-ревью кашу из способов обработки ошибок. Давайте раз и навсегда зафиксируем базу, чтобы ваш код был идиоматичным. Есть два лагеря, и вам нужно быть в обоих, но в разное время: 1. Вы пишите Библиотеку? Используйте thiserror. Почему: Вашим пользователям важно матчить ошибки. Им нужно знать, что именно пошло не так (NetworkError, ParseError), чтобы программно на это отреагировать. Вы не должны навязывать им тяжелые трейты. #[derive(thiserror::Error, Debug)] pub enum MyLibError { #[error("IO error: {0}")] Io(#[from] std::io::Error), #[error("Invalid header")] InvalidHeader, } 2. Вы пишите Приложение (CLI, Backend)? Используйте anyhow. Почему: Вам чаще всего плевать на тип ошибки в глубине стека, вам важно прокинуть её наверх (main), залоггировать контекст и упасть (или отдать 500-ку). use anyhow::{Context, Result}; fn main() -> Result<()> { let config = std::fs::read_to_string("config.toml") .context("Не удалось прочитать конфиг")?; Ok(()) } Итог: В библиотеках даем структуру (thiserror), в приложениях собираем контекст (anyhow). Не смешивайте. #rust #tips #error_handling 📲 Мы в MAX 👉 @rust_lib
18 · 1.1K ·

Рядом в ленте

RRustGhostport Высокопроизводительный инструмент для подмены портов, написанный на Rust. Сбивайте с толку порт-сканеры с помощью динамической эмуляции сервисов на всRRustДобро пожаловать на «Полный курс Rust»! (2024) (Eng ver.) Этот обширный курс разработан, чтобы превратить вас из новичка в опытного программиста Rust, охватывая
это сообщение
RRustPake 🤱🏻 Превратите любую веб-страницу в настольное приложение с помощью Rust. Pake поддерживает Mac, Windows и Linux. https://github.com/tw93/Pake 📲 Мы в MAX 👉 RRust🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем