try...catch的前世今生
2024-10-10 02:03:46
1975年, John Goodenough发表论文,提出异常处理的建议:
一是明确声明命令可能抛出何种异常;
二是需要有将可能出错的操作括起来的语句结构。
Communications of the ACM(美国计算机学会通讯)
John Goodenough后来成为卡耐基梅隆大学软件工程研究所的最高技术负责人
1983年,C++首次使用try...catch语句
|-加入try{...}catch{...}语句
|-使用throw 触发异常(原型是:PL/I语言的signal,但这个在标准库中是C语言的系统中断函数)
|-try不是必须的,只是为了提高可读性——C++设计者:斯特劳斯特卢普(Bjarne Stroustrup)
1990s初,MS在用C开发Windows NT3.1时,出现了finally的原型:
__try{
__try{
}__finally{
...
}
}__except(...){
...
}
标准 C++ 没有类似 finally 这样的语法,斯特劳斯特卢普(Bjarne Stroustrup)表示:C++用~析构函数()比finally更优雅。
但Java、C#、D语言等不认可这种观点。
Java检查型异常
面前说了,John Goodenough的观点之一是:“明确声明命令可能抛出何种异常”
Java把异常分为三类:
1.搞不定的重大异常
2.搞的定的运行时异常
3.搞的定的其它异常(检查型异常)
Java的检查型异常太麻烦,不被接受,甚至被诟病。
C#设计者一方面承认这种做法很好,一方面希望有更好的方法。
最新文章
- 明晨HOSTS编辑器mcHostsEdtor与火狐HostAdmin配合使用
- Swift不同storyboard之间的交互
- 读JS高级(兼容&;&;BOM&;&;私有变量&;&;面向对象)
- redhat RHEL 5.5 下载地址
- Struts2中的namespace使用
- sed命令用法详解
- navicat 导入sql文件乱码问题解决
- jQuery 插件 flexslider 初步使用
- hdu4597 Play Game(DFS)
- MAC OSX 进程间通信
- 理解Kubernetes(1):手工搭建Kubernetes测试环境
- Azure Automation (6) 执行Azure SQL Job
- Ubuntu 16.04.4 LTS下安装JDK
- JQuery Rest客户端库
- visual studio属性管理器
- Codeforces Round #486 (Div. 3) D. Points and Powers of Two
- 转载 c++指针 指针入门
- leetcode717—1-bit and 2-bit Characters
- 2.选择元素 - 自定义过滤器《jquery实战》
- Maven快照