qidao123.com技术社区-IT企服评测·应用市场

标题: Rust Web 全栈开发之 Web Service 中的错误处理 [打印本页]

作者: 羊蹓狼    时间: 2023-5-31 10:44
标题: Rust Web 全栈开发之 Web Service 中的错误处理
Rust Web 全栈开发之 Web Service 中的错误处理

Web Service 中的统一错误处理

Actix Web Service 自定义错误类型    ->    自定义错误转为 HTTP Response

Actix-Web 的错误处理

  1. enum Result<T, E> {
  2.   Ok(T),
  3.         Err(E),
  4. }
复制代码
例子
  1. use std::num::ParseIntError;
  2. fn main() {
  3.   let result = square("25");
  4.   println!("{:?}", result);
  5. }
  6. fn square(val: &str) -> Result<i32, ParseIntError> {
  7.   match val.parse::<i32>() {
  8.     Ok(num) => Ok(num.pow(2)),
  9.     Err(e) => Err(3),
  10.   }
  11. }
复制代码
? 运算符

  1. use std::num::ParseIntError;
  2. fn main() {
  3.   let result = square("25");
  4.   println!("{:?}", result);
  5. }
  6. fn square(val: &str) -> Result<i32, ParseIntError> {
  7.   let num = val.parse::<i32>()?;
  8.   Ok(num ^ 2)
  9. }
复制代码
自定义错误类型

  1. #[derive(Debug)]
  2. pub enum MyError {
  3.   ParseError,
  4.         IOError,
  5. }
复制代码
Actix-Web 把错误转化为 HTTP Response

创建自定义错误处理器

项目目录
[code]ws on  main [✘!?] via
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/) Powered by Discuz! X3.4