mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-19 09:06:32 +00:00
新增SystemError枚举类型,使得错误处理更清晰 (#205)
This commit is contained in:
@ -29,7 +29,7 @@ fn foo() -> i32 {
|
||||
```
|
||||
### 2.3 错误处理
|
||||
|
||||
  DragonOS采用返回Posix错误码作为**模块间错误处理**的方式。为了确保在模块之间,错误处理代码的一致性,我们推荐在发生错误的时候,返回`Err(i32)`,并且posix错误码的值应当是负数。这样做的优点尤其体现在跨模块调用函数时,可以直接返回错误码,从而降低错误处理代码的耦合度。
|
||||
  DragonOS采用返回Posix错误码作为**模块间错误处理**的方式。为了确保在模块之间,错误处理代码的一致性,我们推荐在发生错误的时候,返回`SystemError`类型,该类型表示posix错误码。这样做的优点尤其体现在跨模块调用函数时,可以直接返回通用的错误码,从而降低错误处理代码的耦合度。
|
||||
|
||||
```rust
|
||||
// 函数跨越模块边界时(由其他模块调用当前函数),不推荐
|
||||
@ -42,21 +42,22 @@ fn foo() -> Result<(), CustomErr> {
|
||||
}
|
||||
|
||||
// 函数跨越模块边界时(由其他模块调用当前函数),推荐
|
||||
fn foo() -> Result<(), i32> {
|
||||
fn foo() -> Result<(), SystemError> {
|
||||
if 1 + 2 == 3 {
|
||||
return Ok(());
|
||||
} else {
|
||||
return Err(-(EINVAL as i32));
|
||||
return Err(SystemError::EINVAL);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
  在**模块内部**,您既可以采用返回自定义错误enum的方式,也可以采用返回Posix错误码的方式。但是,我们推荐您在模块内部,采用返回自定义错误enum的方式,这样可以使错误处理代码更加清晰。
|
||||
  在**模块内部**,您既可以采用返回自定义错误enum的方式,也可以采用返回`SystemError`的方式。但是,我们推荐您在模块内部,采用返回自定义错误enum的方式,这样可以使错误处理代码更加清晰。
|
||||
|
||||
  **TODO**: 将原有的使用i32作为错误码的代码,改为使用`SystemError`。
|
||||
|
||||
## 3. 注释
|
||||
|
||||
  DragonOS的注释风格与Rust官方的不太一样。但是,我们仍然推荐您在代码中加入尽可能多的有效注释,以便于其他人理解您的代码。并且,变量、函数等声明,遵守第一节中提到的命名规范,使其能够“自注释”。
|
||||
  DragonOS的注释风格与Rust官方的不太一样,我们部分结合了Linux的注释风格。同时,我们推荐您在代码中加入尽可能多的有效注释,以便于其他人理解您的代码。并且,变量、函数等声明,遵守第一节中提到的命名规范,使其能够“自注释”。
|
||||
|
||||
### 3.1 函数注释
|
||||
|
||||
@ -76,6 +77,7 @@ fn foo() -> Result<(), i32> {
|
||||
/// 函数的详细描述
|
||||
///
|
||||
/// @param 参数1 参数1的说明
|
||||
///
|
||||
/// @param 参数2 参数2的说明
|
||||
///
|
||||
/// @return 返回值的说明
|
||||
@ -85,5 +87,6 @@ fn foo() -> Result<(), i32> {
|
||||
|
||||
```rust
|
||||
/// @return Ok(返回值类型) 返回值的说明
|
||||
///
|
||||
/// @return Err(错误值类型) 错误的说明
|
||||
```
|
||||
|
Reference in New Issue
Block a user