异常的正确处理

createh51个月前 (03-14)技术教程7


人生和世界总是充满着不意外,争议、冲突和战争似乎是人类必然经历的过程。程序执行也有不满的时候。


不同编程语言的异常

  • 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等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

相关文章

朗致面试-IOS/安卓/Java/架构师

一、一共三轮面试:第一轮是逻辑行测,25道题目,类似于公务员考试题目,要求90分钟内完成。第二轮是技术面试,主要是做一些数据结构与算法中的题目,在自己的机器上完成代码的编写,打印出结果,要求在60分钟...

iPhone越狱大神都是怎么进行破解的?头文件包含的干货

看似原始的做法,却是相当高效的引用方式。编程语言的头文件包含C/C++支持头文件包含。PHP还可将include语句置于条件语句中,include_once类似ObjC的#import可以保证不会重复...

苹果M1电脑真实编程测试之python篇-60个项目最全测试

苹果M1 mac电脑发售有一段时间,已经有多个性能测试软件对M1进行了测试,苹果M1跑分不俗。在geekbench上M1 Mac电脑甚至已经登顶Mac单核性能榜首。那么在真实的编程环境中,M1 mac...

Kotlin KMP开发利器!xcode-kotlin实现iOS端Kotlin代码断点调试

上次写了这篇《基于 Kotlin KMP 实现 HarmonyOS 与 Android 双平台 SDK 开发实践》,但是当时有个遗憾, Kotlin KMP 项目除了 Android 平台,在IOS...

类一定有基类吗?如何修改根类?

不是所有的牛奶都叫特仑苏,也不是所有的类都有基类。类一定有基类?C++默认情况下不限定类一定有一个原始基类,C++这种处于C和纯面向对象的设计使得它格外有选择权。对于Smalltalk/ObjC/Ja...