我一直坚持为我图书馆的公共API中的函数提供错误处理工具。例如,我有一些queue
和一个get_data
,而函数typedef struct data_source data_source;
typedef struct queue queue;
/**
* Returns:
* 0 - on success
* -1 - on data source failure
* -2 - on queue overflow
*/
int get_data(data_source *ds, queue *queue);
的外观为:
POSIX
但是查看errno
的errno方法时,他们使用返回类型表示发生了某些错误,并使用errno
设置了错误代码。我不确定将/**
* Returns:
* 0 - on success
* -1 - on error and error_code is set to
* 1 - if queue overflow occurs
* 2 - if data source failure detected
*/
int get_data(data_source *ds, queue *queue, int *error_code);
用于我的库API是否是一个不错的选择,但是考虑到这一点,我将如下设计函数:
<mat-sidenav #snav [mode]="'push'">
<mat-nav-list>
<a *ngFor="let mnu of menus" mat-list-item [routerLink]="['/mnu']">{{mnu}}<\a>
<\mat-nav-list>
<\mat-sidenav>
用于错误处理的第二种示例方法(比第一种方法更常见吗?)?
答案 0 :(得分:2)
errno是errno.h中的宏。
将其视为系统或库可能设置为某种外部变量。即这不是您的lib函数的参数,而是全局int。
如果您要使用返回值作为错误代码或使用errno,完全由您决定。