• try...catch的前世今生


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

  • 相关阅读:
    机器学习十讲学习笔记第四讲
    大三寒假学习进度笔记Day22
    机器学习十讲学习笔记第三讲
    大三寒假学习进度笔记Day21
    机器学习十讲学习笔记第二讲
    大三寒假学习进度笔记Day20
    机器学习十讲学习笔记第一讲
    大三寒假学习进度笔记Day19
    大三寒假学习进度笔记Day18
    大三寒假学习进度笔记Day17
  • 原文地址:https://www.cnblogs.com/tigerlion/p/10659675.html
Copyright © 2020-2023  润新知