介紹乙個專門處理C 異常的類和例子

2021-08-16 22:21:33 字數 1038 閱讀 5899

簡介: 

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的 塊中,而且這個變數的初始化還可能丟擲異常。還好本人的能力不咋地,就遇到了這樣的乙個問題 變數的初始化發生了異常,而且最後還顯示了乙個找...