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#设计者一方面承认这种做法很好,一方面希望有更好的方法。

最新文章

  1. 明晨HOSTS编辑器mcHostsEdtor与火狐HostAdmin配合使用
  2. Swift不同storyboard之间的交互
  3. 读JS高级(兼容&&BOM&&私有变量&&面向对象)
  4. redhat RHEL 5.5 下载地址
  5. Struts2中的namespace使用
  6. sed命令用法详解
  7. navicat 导入sql文件乱码问题解决
  8. jQuery 插件 flexslider 初步使用
  9. hdu4597 Play Game(DFS)
  10. MAC OSX 进程间通信
  11. 理解Kubernetes(1):手工搭建Kubernetes测试环境
  12. Azure Automation (6) 执行Azure SQL Job
  13. Ubuntu 16.04.4 LTS下安装JDK
  14. JQuery Rest客户端库
  15. visual studio属性管理器
  16. Codeforces Round #486 (Div. 3) D. Points and Powers of Two
  17. 转载 c++指针 指针入门
  18. leetcode717—1-bit and 2-bit Characters
  19. 2.选择元素 - 自定义过滤器《jquery实战》
  20. Maven快照

热门文章

  1. modbus协议开关量采集模块
  2. Java学习的第三十三天
  3. IOCP 模型1
  4. 学了Java才搞懂JMeter测试计划
  5. sublime中插件
  6. 对hadoop之RPC的理解
  7. Python面试题及答案汇总整理(2019版)
  8. 【老孟Flutter】6种极大提升Flutter开发效率的工具包
  9. 【线上问题排查技巧】动态修改LOGGER日志级别
  10. .NetCore Docker一次记录