首页 > 编程语言 >关于`.Net Core`捕捉`C/C++`中的异常

关于`.Net Core`捕捉`C/C++`中的异常

时间:2023-12-18 13:57:00浏览次数:30  
标签:Core 错误 C++ 捕捉 Net 异常

结论

开门见山的说,.Net Core 无法捕捉在C/C++编写的Dll中的方法的异常和错误。

说明

.Net Framework框架期间,可以通过为方法增加特性:HandleProcessCorruptedStateExceptionsAttribute,或者使用RuntimeWrapperException捕捉运行时的错误,
但是在.Net Core框架中,上述特性已经不再生效了,即使它的状态是弃用状态而不是删除掉。
事实上,没有删除它的原因仅仅只是为了.Net Core.Net Framework的兼容性保留。
但是这个特性已经不生效了。

因此,RuntimeWrapperException也失去了捕捉从C/C++中抛出的运行时异常和错误的能力。

解法

一个合理且规范的解决方案是,不要再考虑通过异常来连接C#和C,而是通过方法的返回值来实现。

比如返回1是正常,2是错误,以此类推。

这势必会增加在C/C++中的代码量,但,总比AspNetCore服务直接崩溃来的划算。

当然,通常遇到的情况是,你所使用的C++包是第三方的,那我只能说,寄。

标签:Core,错误,C++,捕捉,Net,异常
From: https://www.cnblogs.com/rocael/p/17911031.html

相关文章

  • 2023最新初级难度C++面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-初级难度C++面试题合集问:C++支持哪些基本数据类型?C++支持以下基本数据类型:布尔型、字符型、整型(包括短整型、长整型、无符号整型)、浮点型(包括单精度浮点型和双精度浮点型)、复数型以及枚举型等。此外,C++还提供了一些复合类型,如数组、结......
  • .net 温故知新【16】:Asp.Net Core WebAPI 筛选器
    一、筛选器通过使用筛选器可在请求处理管道中的特定阶段之前或之后运行代码。这即是我们经常听到的面向切面编程AOP(AspectOrientedProgramming)技术,AOP通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。筛选器在ASP.NETCore操作调用管道(有时称为筛选......
  • 端侧显著性检测新高度,OPPO提出面向真实场景的PSUNet
    前言 在高分辨率场景下,现有的显著目标检测方法难以同时满足快速推理和准确结果的要求。它们受到用于高分辨率图像的公共数据集和高效网络模块的质量的限制。为了缓解这些问题,本文构建一个显著对象匹配数据集HRSON和一个轻量级网络PSUNet。考虑到移动部署框架的高效推理,设计了对称......
  • SslSugar导航查询与EF Core导航查询
    SqlSugar:当我们在SQLSugar中定义了两个实体类之间的关联关系时,可以使用导航属性进行关联查询。导航属性是表示一个实体对象与其他实体对象之间关联的属性。通过导航属性,我们可以方便地在查询中访问和检索相关联的实体数据。在SQLSugar中,导航属性需要满足以下条件:导航属性必须......
  • C++(虚函数和纯虚函数的区别)
    在C++中,虚函数和纯虚函数都与面向对象编程中的多态性相关,但它们有一些关键的区别。虚函数(VirtualFunction):定义:虚函数是在基类中声明并在派生类中定义的函数,使用virtual关键字进行声明。在基类中可以提供一个默认实现,但在派生类中可以选择覆盖(override)它。实现:虚函数可......
  • 通过备份 Etcd 来完美恢复 Kubernetes 中的误删数据
    误删除或者服务器宕机,会导致Etcd数据的丢失或某个节点的Etcd数据异常时,当误删时,需要恢复数据,这个在实际环境当中是不可避免的。以下描述删除两个namespace下的Pod,如何恢复对应namespace的数据。1、操作环境3个(master、etcd)+1个node新建1个namespace下且创建Pod和......
  • 修改kubernetes-dashboard默认token认证时间
    详解:k8s默认dashboardtoken时间是900s,15分钟,到期后会自动退出登陆。解决办法:修改默认时间找到部署dashboard的yaml文件增加其中这一行[root@master1~]#catrecommended.yaml#Copyright2017TheKubernetesAuthors.##LicensedundertheApacheLicense,Version2.0(th......
  • kubernetes1.18.2安装kube-prometheus
    注:使用kube-prometheus安装非常方便,前面的prometheus+grafana+metrics-server都不用安装,已经集成在里面。1、clonegithub地址gitclonehttps://github.com/coreos/kube-prometheus.gitcdkube-prometheus2、查看manifest路径下所有的yaml文件[root@master1manifests]#lltotal......
  • C++调用opencv使用透明遮罩进行模板匹配定位——以梦幻西游鼠标为例
    目录程序简介程序/数据集下载代码分析程序简介项目调用C++的opencv模块进行模板匹配,即在一张源图上找到对应模板图最相似的位置,网上大多数使用matchTemplate方法并没有使用到mask遮罩(也可以叫掩膜),而在现实情况中不规则的模板更为常见,而模板加遮罩则可以实现不规则模板,本文以梦......
  • Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition:使用大核卷
    Conv2Former:ASimpleTransformer-StyleConvNetforVisualRecognition*Authors:[[QibinHou]],[[Cheng-ZeLu]],[[Ming-MingCheng]],[[JiashiFeng]]Locallibrary初读印象comment::研究一种更有效的利用卷积编码空间特征的方法,利用卷积调制来简化自注意力操作......