首页 > 其他分享 >throw,throw ex 与 ExceptionDispatchInfo.Throw(ex)

throw,throw ex 与 ExceptionDispatchInfo.Throw(ex)

时间:2023-05-31 16:55:36浏览次数:57  
标签:Exception public ex throw catch 异常 Throw

有以下代码

using System.Diagnostics;
using System.Runtime.ExceptionServices;

using Microsoft.AspNetCore.Mvc;

using static System.Net.Mime.MediaTypeNames;

namespace WebSignalR.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {
       
        public WeatherForecastController()
        {
        }

        [HttpGet]
        public async Task Get()
        {
            try
            {
                //Test();
                Test2();
               // Test3();
            }
            catch (Exception ex )
            {

                throw;
            }
         

            await Task.Delay(1);
        }

        public void Test()
        {
            try
            {
                var res = Convert.ToInt32("1qq");
            }
            catch (Exception ex)
            {
                throw;
            }
           
        }

        public void Test2()
        {
            try
            {
                var res = Convert.ToInt32("1qq");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void Test3()
        {
            try
            {
                var res = Convert.ToInt32("1qq");
            }
            catch (Exception ex)
            {
                ExceptionDispatchInfo.Throw(ex);
            }
        }

    }
}

当运行 Test 方法时,两次异常捕获的详情如下:

 

 由图可知如果使用 throw 抛出异常,则可以保留原始异常的堆栈跟踪信息

 

当运行 Test2 方法时,两次异常捕获的详情如下:

 

 使用 throw ex 抛出异常时会重置异常的堆栈跟踪信息,导致该异常只包含当前的调用栈信息,丢失了原始异常发生位置的信息

标签:Exception,public,ex,throw,catch,异常,Throw
From: https://www.cnblogs.com/ZGXF/p/17446644.html

相关文章

  • 9万7千多小学作文大全ACCESS\EXCEL数据库
    作文类的数据库虽然已经有很多,有近万条的,也有2万条的,但今天弄到了小学、中学、高中一个系列的数据,而且最主要的是数据的记录数很多。这份小学作文包含97444条记录,分类也很好。grade字段统计:一年级(8098)、二年级(12869)、三年级(14715)、四年级(13318)、五年级(18582)、六年级(29588)、小升......
  • 42、如何把pdf里面的表格复制到Excel表格里面呢?
    要求:把pdf表格里面的价格去掉(pdf里面的表格有一个是一整张图片来的,有一个是直接表格)解决方法:直接复制的话,Excel的格式会乱的,那么这里就把pdf的内容转为word,然后在Excel表格里面复制word的内容,但是这样做也是比较慢的,         另一个表格是图片来的,这个用off......
  • [4] Secret Key Extraction using Bluetooth Wireless Signal Strength Measurements
    近日在找和BLE或者RSS相关的baseline,不好找,找到了一篇2014年的文章,感觉CCFB的文章工作量其实也还好吧。 SecretKeyExtractionusingBluetoothWireless SignalStrengthMeasurements题目:通过蓝牙测试RSS来生成密钥 1、摘要和介绍其实看了题目大概就知道他在干啥了,摘......
  • java.lang.ClassCastException: com.alibaba.fastjson2.JSONArray cannot be cast to
    是这样的,今天跟着写springboot项目的时候,前端登录的时候报403错误。检查了半天,是后端的问题报错代码: 第二句报错提示如下 说是JSONArray不能转String,但我这也不是JSONArry转String而是Object转String啊。网上搜了半天,用了好多种方法也没什么用最后索性死马当活马医,让它......
  • 8万多初中作文大全ACCESS\EXCEL数据库
    作文类的数据库虽然已经有很多,有近万条的,也有2万条的,但今天弄到了小学、中学、高中一个系列的数据,而且最主要的是数据的记录数很多。这份初中作文包含80621条记录,分类也很好。grade字段统计:初一(27301)、初二(27600)、初三(23686)、中考(2034)。type字段统计:小说(8990)、散文诗歌(8985)、写......
  • kibana智能检索发送多次_msearch —— 配置index pattern,同时设置时间段,就知道到底是
    kibanasite/elasticsearch/log-*/_field_stats?level=indices   返回:{"_shards":{"total":600,"successful":600,"failed":0},"indices":{"log-2017.11.22-19-192.168.2.3-93004":{"fields":{"Rec......
  • [Slide] 解决Slidev export导出pdf报错
    解决Slidevexport导出pdf报错问题按照Slidev的官方文档使用导出为pdf需要安装playwright-chromium官网安装方法如下:npmi-Dplaywright-chromium在我电脑上执行安装后直接执行导出命令sudoslidevexport,显示报错如下:Slidevv0.42.1(global)theme@slidev/......
  • nexus-maven 私服搭建
    1.查询docker镜像dockersearch nexus;我们选择最多人用的那个sonatype/nexus3 2.在本地创建一个目录,作为挂载,sudomkdir-p/nexus/data3.授权文件夹sudochown777/nexus......
  • Spring AOP错误:org.springframework.beans.factory.BeanNotOfRequiredTypeException:
    org.springframework.beans.factory.BeanNotOfRequiredTypeException:Beannamed'myCalculator'isexpectedtobeoftype'com.mashibing.service.MyCalculator'butwasactuallyoftype'com.sun.proxy.$Proxy19'atorg.springframew......
  • pip install时遇到subprocess-exited-with-error错误
    当我使用容器在外网下载的peft源码包中使用pipinstall-e.命令进行安装时,安装顺利进行。而当我在公司内网使用相同容器进行安装时,报出题目中的错误,因为是离线安装,所以我猜测是不是网络问题,因为这两个区别就是一个联网一个没有联网,于是我在内网pipinstall-e.命令后面加上了......