【C#学习笔记】【StackTrace】
浅谈StackTrace
- StackTrace的使用
- 介绍
- 代码示例
- 结果打印
- 源码链接
StackTrace的使用
使用StackTrace类来获取调用方法的堆栈信息。
介绍
1.其中调用GetFrame得到栈空间,参数index 表示栈空间的级别,0表示当前栈空间,1表示上一级的栈空间,依次类推。
2.除了可以获取方法信息外,还可以调用StackFrame类的成员函数,在运行时得到代码的文件信息及行号和列号等
3.利用StackTrace 属性获得错误的函数被调用的堆栈信息,以及文件的位置(文件名,行号),并将错误信息保存在一个.config的文件里
4.如果是try{}catch(Exception ex){},是可以通过ex.StackTrace()直接获取到堆栈信息,但如果是其他场景,就需要通过下面的代码来获取了。
代码示例
public static StringBuilder OutputCallStack()
{StringBuilder stackStrs = new StringBuilder();//如果为 true,则捕获文件名、行号和列号;否则为 false。System.Diagnostics.StackTrace stack = new System.Diagnostics.StackTrace(true);//调用GetFrame得到栈空间System.Diagnostics.StackFrame[] stackFrames = stack.GetFrames();//从1开始是为了不显示当前函数的堆栈,从目标函数开始for (int i = 1; i < stackFrames.Length; i++){//参数index 表示栈空间的级别,0表示当前栈空间,1表示上一级的栈空间,依次类推System.Reflection.MethodBase? method = stackFrames[i].GetMethod();//堆栈信息 类名.方法名; 文件名.行数stackStrs.AppendLine($"[CALL STACK][{i}]: 【Method:{method?.DeclaringType?.FullName}.{method?.Name}】; 【File:{stackFrames[i].GetFileName()}.{stackFrames[i].GetFileLineNumber()}】");}return stackStrs;
}
结果打印
源码链接
https://download.csdn.net/download/Aflashstar/57777687
【C#学习笔记】【StackTrace】相关推荐
- Spring Boot 2 学习笔记(2 / 2)
Spring Boot 2 学习笔记(1 / 2) - - - 45.web实验-抽取公共页面 46.web实验-遍历数据与页面bug修改 47.视图解析-[源码分析]-视图解析器与视图 48.拦截器 ...
- 【转】 C#学习笔记14——Trace、Debug和TraceSource的使用以及日志设计
[转] C#学习笔记14--Trace.Debug和TraceSource的使用以及日志设计 Trace.Debug和TraceSource的使用以及日志设计 .NET Framework 命名空 ...
- 安卓逆向学习笔记(一)
这些都是通过学长给予,以及网络上的资源来做的个人理解.总结,大牛们不要喷. 零基础小萌新在角落瑟瑟发抖的认真记笔记. 安卓逆向学习笔记(一) 写一个安卓程序(附上原帖链接教我兄弟学Android逆向0 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 学习笔记 - 5步理解Gradle. How build execution is controlled by gradle tasks?
https://docs.gradle.org/current/userguide/tutorial_using_tasks.html#sec:projects_and_tasks https://d ...
- Dart 学习笔记一(操作符、方法与异常)
目录 Dart变量 final和const修饰符 Dart的内置类型 numbers Strings Booleans Lists(列表) Maps(映射集合) Runes(用于在字符串中表示Unic ...
- Javaweb学习笔记(JSP标准标签库)
Javaweb学习笔记(JSP标准标签库) JSTL入门 安装和测试JSTL JSTL中的Core标签库 < c:out>标签 标签 标签 < c:catch>标签 标签 标签 ...
- Dart 语言学习笔记(Dart语言完全指南)
Dart 语言学习笔记 Part 1:概览 Dart是一门纯OOP语言.所有的类都继承于Object类.null也是对象,变量仅仅存储对象的引用 Dart是强类型语言,即使Dart可以进行类型推断(使 ...
- PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call
您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...
- 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
最新文章
- 微信小程序开发流程介绍
- GDLiveStreaming视频推送RTMP
- React Fiber 原理介绍
- ERROR 1366 (HY000): Incorrect string value......(Mysql报错解决)
- python-global全局变量
- 误码率越高越好还是越低越好_夜间护理步骤越多越好还是越少越好?NFF
- 摩托罗拉v8对讲机驱动软件_摩托罗拉数字机如何设置“个性”提示音
- 算法导论水壶问题(第三版第八章思考题8-4)
- HashMap底层理解(上)
- 隐藏右侧“快速启动栏”中的回收站图标及查看所有网站内容
- 拓端tecdat|R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例
- 队列服务(Queue)
- ArcGIS中地理配准与空间校正的不同
- 博弈论——完全信息博弈
- 计算机概论二进制加法,计算机科学概论二进制
- 解决命令提示符已被系统管理员停用的问题
- LeetCode | 面试题04. 二维数组中的查找【剑指Offer】【Python】
- Android WebView点击返回键回到上一个html
- scp 传目录_scp传输文件的命令
- 海贼C语言,C语言程序设计(海贼现场课)