概述假设我有一个C库,我使用Visual Studio链接到 Windows上的C程序.这个C库是黑盒子.如果此库中发生致命
错误(例如取消引用null),程序/ OS将如何处理此
运行时错误?我在C中知道存在空引用异常,所以你可以使用try / catch处理这样的错误,但由于这是一个C库,它不会发出一个throw,对吧?那会发生什么?该程序将终止,但通过什么方式,如果不是C异常? 在本机代码中取消引用 假设我有一个C库,我使用Visual Studio链接到 Windows上的C程序.这个C库是黑盒子.如果此库中发生致命错误(例如取消引用null),程序/ OS将如何处理此运行时错误?我在C中知道存在空引用异常,所以你可以使用try / catch处理这样的错误,但由于这是一个C库,它不会发出一个throw,对吧?那会发生什么?该程序将终止,但通过什么方式,如果不是C异常?解决方法 在本机代码中取消引用空指针将导致windows上的“访问冲突”,或Unix / Linux上的“分段错误”.同一件事的不同名称.它是检测错误的cpu,它调用 *** 作系统中的处理程序,终止进程.
在基于VM的语言(例如.NET或Java)中取消引用空引用将引发您可以捕获的异常.这是可能的,因为VM位于程序和cpu之间,它可以在尝试实际解除引用之前检测到null.
C库是本机代码,因此您将获得访问冲突.您可以从真正的C程序中获得相同的结果,该程序也可以编译为本机代码.但是,如果您使用的是Managed C或C/C++li,那些是编译为CIL并在.NET运行时上运行的变体,因此在这种情况下会出现NullReferenceException.
总结
以上是内存溢出为你收集整理的如何在用C编译的C库中处理运行时错误?全部内容,希望文章能够帮你解决如何在用C编译的C库中处理运行时错误?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)