您现在的位置是:首页 >技术杂谈 >(C/C++) 从错误到异常 (error->exception)网站首页技术杂谈
(C/C++) 从错误到异常 (error->exception)
简介(C/C++) 从错误到异常 (error->exception)
前言
在现代主流面向对象的编程语言中,异常是一个非常重要的机制。而历史悠久的C语言却没有这种机制。
大多数人都知道异常怎么使用,但是没思考过为什么会产生这种机制。
本文将从C语言时代的错误到C++时代的异常进行简单介绍和分析。
参考资料:“异常”是啥?何时用?如何用?很多人不懂,其实就一句话。学会这个,受用终身!
其实本文就是一个笔记
衍变
error neutrality
错误中立
允许该函数的子函数,运行中产生错误。
示例场景:
读取一个指定文本的信息。
分析:
在错误时,控制台会打印错误信息。
为了不让错误的状态继续运行,需要不断判断函数的返回值。
原因:
宏:errno
展开成一个每个线程独立的静态变量,或函数。运行的操作会把错误原因写入这个宏。
#include <error.h>
#include <stdio.h>
#include <stdlib.h>
char *read_file(const char *path) {
FILE *fp = fopen(path, "r");
if (!fp) {
perror("open fail
");
return NULL;
}
size_t cap = 1023;
// +1 ('