如何在异常中添加自己想要的信息

Exception.Data 为异常添加更多调试信息 我们抛出异常是为了知道程序中目前的状态发生了错误。为了能够知道错误的详细信息便于我们将来避免产生这样的错误,我们会选用合适的异常类型,在异常中编写易于理解的 message 信息。但是有时我们需要更多的信息进行调试才能帮忙在将来避免这个异常。 阅读详情

比较简单的方式,是在程序中先去捕获,然后再修改信息,最后抛出。如果想更多的信息,则需要一个类去继承Exception类,然后添加自己的元素。

 

先说简单的方法,首先修改存在异常的函数,例如:

    private void fun(int i, int k)

    {

        try

        {

            string a1 = "";

            string c1 = a1.Substring(1,3);

        }

        catch( Exception err )

        {

            string strPara = string.Format( "First Par(int):{0}/nSecondPar(int):{1};", i, k );

            ApplicationException myErr = new ApplicationException( strPara + “/n” + err.Message, err );

            throw myErr;

        }

    }

 

       然后在捕获的时候,如下即可:

    try

    {

        fun( 1, 2 );

    }

    catch( Exception myErr )

    {

        MessageBox.Show( myErr.Message );

    }

 

       至于继承Exception类,方法是一样的,例如:

    public class MyException:Exception

    {

        private string strAppendMessage = "";

        public string AppendMessage

        {

            get{ return strAppendMessage;}

            set{ strAppendMessage = value;}

        }

        public MyException( string sAppendMessage, Exception err ):

                base(sAppendMessage, err)

        {

            strAppendMessage = sAppendMessage;

        }

    }

      

       你可以按照需要在其中加入更多的信息。

智能座舱语音测试避坑指南:从唤醒率到方言识别,这些场景你测全了吗? 本文深入解析智能座舱语音测试的关键场景与避坑指南,涵盖唤醒率测试、方言识别、多音区交互等复杂场景。通过实战案例与自动化测试方案,帮助开发者全面提升语音系统的可靠性与用户体验,特别关注环境噪声干扰与方言覆盖策略。 阅读详情

相关推荐

如何用zemax导入solidworks装配体

在zemax使用中,常常需要导入各种零件。如果光机结构较为复杂,那么手工一个一个加载零件,还需要在zmx文件中调整object的位置,非常麻烦。如果能将solidworks的装配体模型直接导入,则可以大幅减小工作量。具体过程为(非序列模式下): 1、新建或打开一个zemax空文件 2、在元件编辑器中,找到一个空文件,双击或直接展开三角符,在类型中找到zemax里的solidworks装配体,如图。...

wojiaoyyy的博客 1万+

java-编码笔记-给异常添加自己的信息

1.需求 需求:在做数据导入的时候,因为数据量较大,有时候数据会有问题,会抛出异常,但这个异常很难定位到某一行数据。 这时候需要做处理,把他定位到某一行。把数据的信息放到异常信息里面。 面临的问题: 当前代码情况,在控制层中捕获异常并反馈给前端,但是着时候捕获不到数据出问题的具体位置。 2.实验 1.需求 (根据源码补个简单的需求)B类中抛出异常,给A类的函数,A类的函数把异常信息返回给主函数,并显示出来 2.代码 package testJava3; public class Exce

xie__jin__cheng的博客 620

从零到一:YOLOv8在边缘设备上的轻量化部署实战

本文详细介绍了YOLOv8在边缘设备上的轻量化部署实战,涵盖模型优化、TensorRT加速、剪枝与知识蒸馏等关键技术。通过工业质检和智能门禁项目案例,展示了如何将YOLOv8高效部署到树莓派、Jetson Nano等资源受限设备,显著提升推理速度和降低内存占用。文章还提供了动态分辨率调整、多模型级联部署等实用技巧,助力开发者实现边缘AI应用的高效落地。

weixin_29040367的博客 379

java异常 exception

1、检查性异常:用户错误或问题引起的,程序员无法预见的。 2、运行时异常:在编译时可以忽略掉,可以被程序员避免的异常 3、错误error:错误不是异常,脱离程序员控制的问题。 try、catch、finally、throw、throws try:监控区域 catch(异常类型):捕获异常。 e.printStackTrace() 输出异常信息。 finally:结束后执行,可以不加。 throw:方法中主动抛出异常 throws:方法中处理不了这个异常,一般在方...

康康的博客 206

还在手敲LaTeX公式?用Rime小狼毫打造你的专属数学输入法(附完整配置包)

本文介绍如何利用Rime小狼毫输入法引擎打造专属数学公式输入方案,显著提升LaTeX公式输入效率。通过详细配置教程和智能补全技巧,帮助科研人员和学生实现3-5倍的输入速度提升,特别适合学术写作和技术文档创作场景。

weixin_32520601的博客 282

10分钟学会工程领域Hypermesh与Abaqus联立处理大量铆钉连接简化做法

铆钉连接是一种可靠且高强度的机械连接方式,广泛应用于多个领域。但是,工程结构上铆钉连接往往以较大的数量出现,若按照常规的一个个去选择生成,处理1个铆钉连接点需要1分钟来算,300个铆钉需要5个小时,耗费大量的时间成本。给出了一种高效处理铆钉连接的方法,提升效率50倍以上。

qq_34933927的博客 1616

java Exception 异常信息

通过上述例子可以看到,在 Java 中处理异常时,我们可以使用 try-catch 语句来捕捉和处理异常情况,以保证程序可以正常执行。Checked Exception 是指那些在编译时可能会发生的异常,例如文件不存在、文件读写错误等,这些异常必须显式地进行处理。如果不处理这些异常,编译器将会报错并提示我们需要处理这些异常。在这个例子中,我们创建了一个数组 arr,并尝试访问数组下标为 3 的元素,而这个元素不存在,因此会抛出 ArrayIndexOutOfBoundsException 异常。

2203_75593971的博客 420

labview的TDMS文件读写

本文先介绍TDMS概念和文件结构,然后介绍VI如何使用,最后分析一个labview的自带范例

观则明的博客 1万+

Java异常封装(自定义错误信息和描述)

一、checked异常和unchecked异常 checked异常: unchecked异常: 二、异常封装示例 2.1、添加一个枚举LuoErrorCode.java如下: 2.2、创建一个异常类BusinessException.java,继承RuntimeException: 2.3、测试类ExceptionTest.java: 一、checked异常和unchec...

爱是与世界平行 8034

QTableView为例:Qt模型视图委托(MVD)(Model-View-Delegate)

QT中的MVD(模型-视图-委托)模式是一种类似于MVC的设计模式,将数据、界面和交互逻辑分离。模型负责数据管理,视图负责显示界面,而委托则嵌入在视图中处理数据的显示和编辑。QT提供了多种视图组件(如QListView、QTreeView、QTableView)和模型类(如QStandardItemModel、QAbstractItemModel),支持数据的多样化呈现。委托(Delegate)通过定制显示和编辑行为增强了视图的灵活性。该模式适用于各类数据结构展示(列表、表格、树形),能够高效处理数据与界面

菜一头包的博客 1989

03 Token、Embedding、上下文窗口:开发者必须懂的三个基本概念

Token、Embedding 和上下文窗口是大模型应用开发的三个基础概念。本文从成本、速度、检索和上下文设计四个角度讲清它们的工程意义,帮助开发者理解为什么同一段内容会超限、变贵,为什么 RAG 能做语义检索。

老于的笔记的专栏 409

java 异常信息添加_java – 向异常添加信息

我想向堆栈跟踪/异常添加信息.基本上我现在有这样的东西,我真的很喜欢:Exception in thread "main" java.lang.ArithmeticException: / by zeroat com.so.main(SO.java:41)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.ref...

weixin_39945789的博客 695

基于STM32的太阳能充电宝设计_资料编号31

系统硬件包括主控 STM32F103C8T6、0.96 OLED 显示屏、蜂鸣器、电源自锁开关、温度传感器 DS18B20、继电器、5 V DC 升压模块 、TB4056、18650锂电池、9 V太阳能板、稳压降压 5 V三极管。电源供应:锂电池为系统供电,9 伏太阳能板经 5 伏降压稳压三极管降压为 5 伏后传送到 TP4056,TP4056 为锂电池供电,因锂电池电压 3.7 伏,通过 5 伏 DC 升压模块升压到 5 伏为整个系统提供 5 伏电压。

嵌入式阿齐Archie 1万+

C#将异常信息添加到日志

C#将程序抛出的异常信息添加到错误日志 错误日志是软件用来记录运行时出错信息的文本文件。编程人员和维护人员等可以利用错误日志对系统进行调试和维护。 为程序添加错误日志的好处是当程序有运行错误时,根据错误日志我们可以快速定位到错误,排查原因、解决问题,这是对于运行在线上而不能调试的网站的一个非常有必要的功能。 1 using System; 2 using System.I...

dianfeihou1445的博客 798

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

你想要的异常知识点都在这里了

Java中常见的异常的知识讲解以及代码实例,让你充分理解Java异常

m0_60354608的博客 438

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java 异常信息添加_捕获多个Java异常时,如何在不编写重复代码的情况下添加状态信息?...

我还阅读了其他一些文章,例如this one,以避免在Java catch块中重复.显然,我真正想要的是“多捕获”,但是看到Java 7尚未出现,是否有一个很好的模式可以让我向异常中添加状态,然后重新抛出它们,而无需添加catching the kitchen sink?具体来说,我有一些代码可以进行库调用,这可能引发异常,但没有提供足够的上下文来成功进行调试.我发现自己有问题,然后继续进行操作,...

weixin_29526539的博客 247

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Java打印异常堆栈信息,定位异常调用位置

Java语言的异常类Exception包含着异常的全部信息。 现设异常的实例名为ex,所有的异常都是一个除以0的表达式(int i = 1 / 0)所触发的: 1、通过ex.getMessage()可以获取异常信息,如 / by zero 2、通过ex.toString()可以获取异常类型和异常信息,如 java.lang.ArithmeticException: / by zero 3、通过ex.printStackTrace()可以直接在控制台打印异常的全部信息(包括堆栈),但该函数最好不要

天空源的博客 1万+

如何知道java的异常信息_你真的会阅读Java的异常信息吗?

给出如下异常信息:java.lang.RuntimeException: level 2 exceptionat com.msh.demo.exceptionStack.Test.fun2(Test.java:17)at com.msh.demo.exceptionStack.Test.main(Test.java:24)at sun.reflect.NativeMethodAccessorImp...

weixin_31869579的博客 1152

java获取异常信息_你真的会阅读 Java 的异常信息吗

给出如下异常信息:学这么多年Java,你真的会阅读Java的异常信息吗?你能说清楚异常抛出过程中的事件顺序吗?需要内化的内容写一个demo测试上述异常信息在由一个demo产生:这次我复制了完整的文件内容,使文章中的代码行号和实际行号一一对应。根据上述异常信息,异常抛出过程中的事件顺序是:在Test.java的第10行,抛出了一个IOExceotion(“level 1 exception”) e1...

weixin_39897070的博客 520

阅读 Java 的异常信息

package error_test; import java.io.IOException; /** * Created by lby on 1/28/2019 */ public class Test { private void fun1() throws IOException { throw new IOException("level 1 except...

q503385724的博客 376

Windows x64为动态代码添加unwind信息

Windows x64为动态代码添加unwind信息0x000x01 0x00 64位程序的堆栈回溯与32位差别很大,调试器和 RtlCaptureStackBackTrace 无法再使用 ebp 链来遍历整个堆栈,而只能使用 prolog信息来回溯堆栈。正常的C/C++函数的prolog信息在编译时候生成并记录在PE64文件的unwind信息中,另外当前函数对应的异常处理函数也添加在unwind信息的尾部。所以对于不存在unwind信息的函数,异常处理流程无法找到其异常处理函数,也很可能无法正常展开堆栈找

weixin_43787608的博客 1305

java添加信息_java – 向异常添加信息

我想向堆栈跟踪/异常添加信息.基本上我现在有这样的东西,我真的很喜欢:Exception in thread "main" java.lang.ArithmeticException: / by zeroat com.so.main(SO.java:41)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.ref...

weixin_30124601的博客 297

线程池异常信息统一处理,从线程异常信息丢失说起

异常信息作为我们平时定位问题的一大法宝,其重要性是不言而喻的。一段代码出现了问题,如果它的异常信息被吃了,那么一个本来很简单的问题,定位起来也会变的很麻烦。 今天我们就从异常信息被吃掉,导致相应信息没有输出到日志的问题说起。 一个简单的例子 首先我们看看如下的代码: public class ThreadLogTestApplication { public static void ma...

会写代码的鱼的博客 1708

获取异常信息

ava如何采用反射机制来调用方法, 若要获取异常信息   Java代码   try{  Method m = ...;  m.invoke(...);//反射调用方法   }catch(Exception e){  System.out.println(e.getMessage);//获取不到异常信息    }    这样是不行的。   应该这样:    

嘎嘎 6382

python3 异常及获取异常信息

try: 1/0 except Exception as e: print(e) 输出结果是integer division or modulo by zero,只知道是报了这个错,但是却不知道在哪个文件哪个函数哪一行报的错。 下面使用traceback模块 import traceback try: 1/0 except Exception as e: ...

yuezhuo_752的博客 6209

记录详细的异常堆栈信息

说明 通常在catch到异常的时候,我们会使用error的日志级别打印一条异常日志,方便问题排查,但我们发现使用e.getMessage()获取异常信息时,经常会返回为null的情况,这对我们排查问题无法提供帮助。下面介绍下日志打印详细堆栈信息的方式 @Slf4j public class ExceptionUtil { /** * 记录异常详细的堆栈信息 * ...

依凡的博客 1507
上一篇: 如何C#中实现在TreeView查找某一节点
下一篇: 如何把网络共享目录映射为本地驱动器(续)
Knight94
博客等级 码龄25年 1013粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值