异常流入和流出
来源:互联网 发布:x7奥斯卡编程软件 编辑:程序博客网 时间:2024/04/23 19:31
异常,即非预期的情况发生,可能导致程序走向未定义的分支,最严重的造成不可挽回的事故。
我们以模块为单位分析异常的来源和走向:
- 直接调用:模块A调用模块B(一般是底层)的API
需要对B的API进行所有分支进行处理,有些API本身不安全,比如strcpy,可以直接让系统挂掉 - 间接调用:模块A向模块C(一般是上层)注册了一个回调
会向稳定的模块C引入不稳定元素 - 提供调用:模块A向外部提供了接口D
需要向用户提供程序是否执行成功,必要时直接由内部输出错误信息到控制台
对于已经可以捕获的异常,需要通过某种方式记录下来,用来说明不正常的数据(最核心的一点),如终端打印,errno,文件,网络等等。以下是简单的发展轨迹:
- 仅打印到终端和通过返回值告知
- 加入函数名和行号
- 区分消息等级,模块统一
- 区分消息所属channel,通过mask开关
- 加入errno用于告知具体的错误
- 写入文件
参考Linux内核各个等级:
0 0
- 异常流入和流出
- QT 之 TCP/IP 服务器和客户端(三)(数据流出流入操作版本)
- 资金流入流出预测-挑战Baseline
- Netty nio 数据流入流出分析
- C++ I/O 流入流出操作
- shell脚本监控linux网卡流量(上传/下载/流入/流出)
- 【天池竞赛系列】资金流入流出预测思路
- 天池大数据竞赛——资金流入流出预测赛后感想
- [资金流入流出预测]一点心得、一份攻略、一段baseline code —— I'm PLUS
- 条款十一:禁止异常流出析构函数之外
- More effective c++ 11(禁止异常(exceptions)流出destructors之外)
- webclient访问HTTPS网页出现:基础连接失败,输出流出现异常
- More effective c++ 11(禁止异常(exceptions)流出destructors之外)
- Spring源码流出解析
- hdu 1532 Drainage Ditches 和hdu 3549 Flow Problem 网络流入门(EK和dinic)
- HDU 3549 适合网络流入门(内含sap模板和Dinic模板)Flow Problem
- 异常和异常处理
- 异常和异常处理
- 1026. 程序运行时间(15)
- NumberPicker+AlertDialog实现精确到秒的Android日期时间对话框
- CodeForces 742A Arpa’s hard exam and Mehrdad’s naive cheat
- 排序算法之冒泡排序
- jquery切换按钮背景图片
- 异常流入和流出
- 【C++学习】【阶段一】Write a C++program
- 1016. 部分A+B (15)
- 触发JVM进行Full GC的情况及应对策略
- hdu acm 1003 Max Sum
- unity项目崩溃且无任何报错信息显示
- javascript 数组去重
- mysql中文乱码解决方案
- H5新特性