首页 新闻 搜索 专区 学院

asp.net core 不捕捉异常,容易奔溃吗

0
悬赏园豆:10 [已解决问题] 解决于 2020-05-17 12:11

由于我写了一个api接口,这个接口在别人调用的时候需要立即返回成功,所以我的async方法里面就不等待某个服务的处理了。

但是发现如果这个服务报了异常,比如空指针异常。整个程序就停止了。 VS调试也是一样,点击继续调试,他会关掉整个运行的项目

模拟抛异常如下:

天空的湛蓝的主页 天空的湛蓝 | 菜鸟二级 | 园豆:203
提问于:2020-05-17 10:41
< >
分享
最佳答案
1

我们用 asp.net core 多年,没有遇到过因未捕获异常造成程序崩溃。

收获园豆:10
dudu | 高人七级 |园豆:39035 | 2020-05-17 10:44

虽然不捕获异常不会造成崩溃,但是还是建议捕获异常并写入日志,不然异常发生时你不知道。

dudu | 园豆:39035 (高人七级) | 2020-05-17 10:53

对于你的这个应用场景,可以考虑使用 Coravel 的队列功能 https://docs.coravel.net/Queuing/

dudu | 园豆:39035 (高人七级) | 2020-05-17 11:05

@dudu: 好的,谢谢dudu啦, 其实上面的那个问题是我猜疑的 。因为 我们现在有把asp.net core 部署到k8s上,偶尔会出现容器重启的情况,还能复现这种情况。就是有一个接口异常了,会导致容器重启一次。不知道dudu有没有遇到容器重启的情况。

天空的湛蓝 | 园豆:203 (菜鸟二级) | 2020-05-17 11:36

@天空的湛蓝: 容器重启有多种原因,比如健康检查失败、CPU或者内存消耗超限等等,建议排查一下是不是因为 LINQ 查询或者 EF Core 配置问题造成加载全表数据从而引起内存超限。

dudu | 园豆:39035 (高人七级) | 2020-05-17 11:45

@dudu: 好的

天空的湛蓝 | 园豆:203 (菜鸟二级) | 2020-05-17 12:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册