Rumah >pembangunan bahagian belakang >C++ >Mengapa Try-Catch Saya Tidak Menangkap AccessViolationException dalam .NET Apabila Menggunakan Objek COM?
Mengatasi AccessViolationExcepti Apabila menggunakan objek COM dalam aplikasi .NET, tidak boleh disangka -sangka memintas
blok. Ini sering menyebabkan kesulitan debug dan kemalangan aplikasi di luar persekitaran pembangunan.
System.AccessViolationException
try-catch
Peranan Pengecualian Negeri yang Rosak (CSE)
Tingkah laku ini terutama disebabkan oleh mekanisme pengecualian keadaan (CSE) .NET 4.0. Pengecualian tertentu, termasuk , diklasifikasikan sebagai CSE, menandakan keadaan proses yang berpotensi kritikal. Blok yang diuruskan standard
tidak dapat memintas pengecualian ini.
AccessViolationException
try-catch
Strategi untuk mengendalikan CSES
dengan berkesan mengurus yang berasal dari panggilan objek COM, pertimbangkan pendekatan ini:
AccessViolationException
atau ) dengan menambahkan yang berikut dalam elemen : app.config
web.config
<configuration>
<code class="language-xml"><legacyCorruptedStateExceptionsPolicy enabled="true" /></code>
enabled="true"
HandleProcessCorruptedStateExceptions
[HandleProcessCorruptedStateExceptions]
Kaedah ini menyediakan cara alternatif untuk mengendalikan pengecualian yang akan menghindari mekanisme pengendalian pengecualian standard dalam .NET semasa bekerja dengan objek COM. Atas ialah kandungan terperinci Mengapa Try-Catch Saya Tidak Menangkap AccessViolationException dalam .NET Apabila Menggunakan Objek COM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!