簡介:
cexceptionlogger
,是乙個可以免費使用的c++類,用它可以截獲未處理異常,如:非法訪問、棧溢位、被零除等,並可以將異常具體資訊記錄到日誌檔案。這個類源自於msdn magazine 2023年3月的一篇專欄文章「under the hood: improved error reporting with dbghelp 5.1」,該文章的作者是 matt pietrek。
特性:在預設情況下,
cexceptionlogger
產生乙個日誌檔案,名字為:nameofexe.exception,這裡的nameofexe是exe檔案的名字。假如以ascii模式生成
cexceptionlogger
,則日誌檔案為一ascii檔案;假如以unicode模式生成
cexceptionlogger
,那麼日誌檔案為一unicode檔案。日誌檔案記錄的資訊包括:
記錄異常發生的日期和時間。
異常**。
假如發生非法訪問,則記錄該異常的具體資訊。
程序的全路徑名。
當前win32工作目錄。
程序的命令列。
程序id。
發生異常的執行緒id。
列舉程序中所有的執行緒(假設toolhelp32是可獲得的),內容包括:
列舉程序中的模組(同樣假設toolhelp32是可獲得的),內容包括:
所有x86暫存器。
異常發生的呼叫堆疊,包括:段、偏移量、模組、函式和行資訊。
日誌檔案記錄的內容還包括每乙個堆疊幀(stack frame)以及所有模組、所有變數、所有引數;所有基本資料型別,如:voids, chars, shorts, words, ints, dwords, floats, doubles 和 longs。此外日誌還記錄使用者定義的資料型別(udt)包括結構、聯合以及類的資訊,再現其成員資料。每種型別都包括名字、位址、型別和值。假如變數是一陣列,該陣列中的值被完全記錄。
使用方法:
改進計畫:
作者的****:
pj naughter
個人**:
乙個簡單的異常處理demo
首先,1.自定義異常類 data public class lyexception extends runtimeexception通過列舉的方式建立異常資訊 getter noargsconstructor allargsconstructor public enum exceptinenums建...
C 和Qt實現的對於異常處理的乙個使用策略
一 基礎 1 c 中的異常處理的基本格式 try catch exception exception finally 一般來說finally 段用於處理沒有被託管的資源的釋放過程。2 qt中的異常處理基本格式 try catch qstring exception 二 異常捕獲的策略 1 try塊的...
異常處理中的乙個小知識
最近在學習hibernate呢,裡面有乙個全域性的乙個變數 sessionfactory。那麼很明顯我們需要將其靜態生成。這個變數的初始化需要寫在乙個static的 塊中,而且這個變數的初始化還可能丟擲異常。還好本人的能力不咋地,就遇到了這樣的乙個問題 變數的初始化發生了異常,而且最後還顯示了乙個找...