Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

Rust Error Handling

20. 08. 2022 1 Min. Lesezeit intermediate

Rust hat keine Exceptions. Stattdessen Result und Option – explizites, typsicheres Error Handling.

Result und Option

use std::fs; fn read_config(path: &str) -> Result { fs::read_to_string(path) } fn find_user(id: u32) -> Option { users.iter().find(|u| u.id == id).cloned() } // ? Operator – Fehlerweiterleitung fn process() -> Result<(), Box> { let config = fs::read_to_string(“config.toml”)?; let data: Config = toml::from_str(&config)?; Ok(()) }

Benutzerdefinierte Fehlertypen

use thiserror::Error;

[derive(Error, Debug)]

enum AppError {

[error(“User not found: {0}”)]

UserNotFound(u32),

[error(“Database error”)]

Database(#[from] sqlx::Error),

[error(“Invalid input: {0}”)]

Validation(String), }

Wichtigste Erkenntnis

Result fuer Fehler, Option fuer Nullable. ? Operator fuer Weiterleitung. thiserror fuer benutzerdefinierte Fehlertypen.

rusterror handlingprogramming
Teilen:

CORE SYSTEMS Team

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.