Rust:
כתיבה לשגיאה התקנית
איך לעשות:
Rust מספקת דרך ישירה לכתוב ל-stderr באמצעות המקרו eprintln!
, בדומה לאופן שבו println!
משמש ל-stdout. הנה דוגמה בסיסית:
fn main() {
eprintln!("זוהי הודעת שגיאה!");
}
פלט לדוגמה (לשגיאה סטנדרטית):
זוהי הודעת שגיאה!
ליותר שליטה על הודעות השגיאה, כמו כאשר אתה רוצה לעצב טקסט או לטפל בתוצאות קלט/פלט, ניתן להשתמש בפונקציה stderr
מהמודול std::io
. שיטה זו מספקת ידית לזרם ה-globel stderr, שניתן לכתוב אליו באמצעות שיטות כמו write_all
או writeln
מה- trait Write
:
use std::io::{self, Write};
fn main() {
let stderr = io::stderr();
let mut handle = stderr.lock();
writeln!(handle, "הודעת שגיאה מעוצבת: {}", 404).expect("נכשל בכתיבה ל-stderr");
}
פלט לדוגמה (לשגיאה סטנדרטית):
הודעת שגיאה מעוצבת: 404
אם אתה פועל בסביבות או אפליקציות שבהן אתה מסתמך על ספריות לתיעוד שגיאות או לטיפול בהן, ספריות כמו log
ו-env_logger
פופולריות. למרות שהן משמשות יותר לצרכי תיעוד, הן ניתנות להגדרה ויכולות להפנות רמות יומן שגיאות ל-stderr. להלן דוגמה פשוטה לשימוש ב-log
וב-env_logger
:
ראשית, הוסף את התלותות ל-Cargo.toml
שלך:
[dependencies]
log = "0.4"
env_logger = "0.9"
לאחר מכן, התקן והשתמש בתיעוד באפליקציה שלך:
fn main() {
env_logger::init();
log::error!("זוהי הודעת שגיאה שנרשמה ל-stderr");
}
הרצת תוכנית זו (לאחר הגדרת env_logger
עם משתנה סביבה מתאים, לדוגמה, RUST_LOG=error
) תוציא את הודעת השגיאה ל-stderr, בעזרת התשתית של תיעוד השגיאות.
ERROR: זוהי הודעת שגיאה שנרשמה ל-stderr