异常的正确处理
人生和世界总是充满着不意外,争议、冲突和战争似乎是人类必然经历的过程。程序执行也有不满的时候。
不同编程语言的异常
- Ada/Modula-3是早期引入异常处理的语言。
- C语言没有标准意义的异常,使用goto或setjmp模拟错误或异常发生时的处理流程。
- ObjC/C++/Java/C#/Python均有比较完整的异常处理语言标准,概念上是try...catch...final.
- ObjC 还提供了 NSError 用于处理异常。
手动触发异常
- Python可以用raise手动触发异常。
try语句块和catch语句块中间可以有代码吗?
- ObjC 不允许两者之间有代码,否则会报编译错误。
try语句块和catch语句块内部有return语句会影响执行flow吗?
- ObjC @try 或@catch 语句块 return 语句会影响执行flow,但 @finally 语句块一定被执行。不管是@try还是@catch或者@finally语句块用return语句返回,@finally语句块之后的语句一定不会被执行。
更简洁的异常处理
- Python提供with语句可以减少出错代码异常处理,配合__enter__和__exit__上下文管理器协议,特别方便。
若文章对您有帮助,欢迎关注 程序员小迷 。助您在编程路上越走越好!
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是 程序员小迷 (致力于C、C++、C#、Android、iOS、Java、Kotlin、Objective-C、Swift、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。