unhandledException詳細介紹

2022-02-10 10:26:53 字數 739 閱讀 8864

1. gc 產生的異常,這種異常通常因為finalize函式中引發未捕獲異常引起。當然這並不絕對,一些系統問題比如記憶體耗盡有時候也會造成gc異常。 

從上面兩點來看,即使我們的**在每個地方都加了try catch ,也不能百分百杜絕未捕獲異常的發生。 

鑑於此,為了提高系統的健壯性和可維護性,我們需要通過一種方法來截獲這些未捕獲異常,並進行適當的處理。

.net 的設計者已經考慮到這些問題,並且為我們提供了乙個叫 unhandledexceptioneventhandler 的事件,通過這個事件,我們可以截獲未捕獲異常,並進行處理。

這個事件的事件引數unhandledexceptioneventargs e, 有兩個屬性,乙個是exceptionobject,這個屬性返回為截獲異常的物件例項。還有乙個屬性是isterminating,這個屬性告訴我們這個異常是否會導致應用終止。這裡需要說明的是,對於.net1.1 和 .net2.0及以上,情況是不一樣的,.net1.1 只有在主線程中的未捕獲異常才會終止應用程式,而.net2.0及以上版本則是始終終止應用程式。如果不終止應用程式,而是有clr 將當前異常消化,系統的執行狀態很可能不可控,最後可能會發生更大的故障,所以.net2.0以後,對於所有未捕獲異常,一律終止當前應用。這樣看來,對於.net2.0以上的應用似乎我們截獲未捕獲異常已經毫無意義,其實不然。通過截獲為未捕獲異常,我們可以記錄下程式是再**產生這種未捕獲異常的,以便程式的開發者改進程式。我們也可以在當前應用退出前為系統做一些其他的保護工作,比如備份資料,告警提示等等。

Linux linux awk陣列操作詳細介紹

用awk進行文字處理,少不了就是它的陣列處理。那麼awk陣列有那些特點,一般常見運算又會怎麼樣呢。我們先看下下面的一些介紹,結合例子我們會講解下它的不同之處。在 awk 中陣列叫做關聯陣列 associative arrays 因為下標記可以是數也可以是串。awk 中的陣列不必提前宣告,也不必宣告大...

191122 python split詳細介紹

作用 通過指定分隔符對字串進行切片,並返回分割後的列表。通過split分割的都是列表。可以不指定分割符,預設為空格 可以指定分隔符進行分割 可以指定分割次數 分割後去哪一塊 不指定分隔符,預設使用空格,返回乙個列表 mystr mystr.split 以 為分隔符 以 為分隔符,分割1次 以 為分隔...

Linux 修改 etc hosts檔案詳細介紹

linux 修改 etc hosts檔案 hosts檔案 hosts the static table lookup for host name 主機名查詢靜態表 hosts檔案是linux系統上乙個負責ip位址與網域名稱快速解析的檔案,以ascii格式儲存在 etc 目錄下。hosts檔案包含了i...