怎样理解C++异常的层层传递

谢邀。可以理解为跳楼。异常处理其实是一个农民工讨薪的故事。农民工小李从摩天大楼工地顶楼 200 楼往下跳。如果下面根本没人理,生命就这样终止了。如果开发商派人在 99 楼架起防护网,那么小李就得救了,咱们在 99 楼坐下来,有话好好说。(当然工友们还是会在谈判前先把 200 到 100 楼拆掉,煞一煞开发商的威风。)如果小李太瘦,而市面上买得到的防护网的网孔都太大,更本接不住他。于是包工头决定,他们自己先在 100 楼架个密的网,把跳下来的小李接住,然后让工地上最肥的人继续往下跳。最后这个包工头做的就是「异常的层层传递」。把自己工地上身材参差不齐的工人,换成一个统一的尺寸。
■网友
一个 partial function,要么返回值,要么返回不了,扔一个异常当作一种特殊的返回值。甲调用你,你调用乙,乙给你返回值,你要么处理处理要么直接交给甲,甲调用你,你调用乙,乙给你异常,你要么 catch 了处理处理要么直接交给甲,这背后原理都是一样的。


    推荐阅读