您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
Rust 是一门注重安全性和性能的系统编程语言
fn divide(a: i32, b: i32) -> Result<i32, &'static str> {
if b == 0 {
Err("Division by zero")
} else {
Ok(a / b)
}
}
fn main() {
match divide(10, 0) {
Ok(result) => println!("Result: {}", result),
Err(error) => println!("Error: {}", error),
}
}
fn main() {
if let Err(error) = divide(10, 0) {
eprintln!("Panic: {}", error);
panic!();
}
}
fn find_element(vec: &[i32], target: i32) -> Option<&i32> {
vec.iter().find(|&x| x == target)
}
fn main() {
let numbers = vec![1, 2, 3, 4, 5];
match find_element(&numbers, 3) {
Some(element) => println!("Found: {}", element),
None => println!("Not found"),
}
}
use std::fmt;
#[derive(Debug)]
enum CustomError {
IOError(std::io::Error),
ParseError(std::num::ParseIntError),
}
impl fmt::Display for CustomError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CustomError::IOError(ref err) => write!(f, "IO error: {}", err),
CustomError::ParseError(ref err) => write!(f, "Parse error: {}", err),
}
}
}
impl From<std::io::Error> for CustomError {
fn from(err: std::io::Error) -> CustomError {
CustomError::IOError(err)
}
}
impl From<std::num::ParseIntError> for CustomError {
fn from(err: std::num::ParseIntError) -> CustomError {
CustomError::ParseError(err)
}
}
fn parse_number(s: &str) -> Result<i32, CustomError> {
s.parse::<i32>().map_err(CustomError::from)
}
fn main() {
match parse_number("123") {
Ok(number) => println!("Parsed number: {}", number),
Err(error) => println!("Error: {}", error),
}
}
总之,Rust 提供了多种错误处理机制,包括 Result、Option、panic! 和自定义错误类型。这些机制可以帮助你编写更安全、更健壮的程序。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。