自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

CLR 4.0中的新內(nèi)容 狀態(tài)錯(cuò)亂異常

開發(fā) 后端
CLR4.0針對未捕獲異常做了一種可配置的處理機(jī)制。請看下面的文章介紹。

狀態(tài)錯(cuò)亂異常

有人叫它超級異常. 指的是未捕獲異常, 打亂了程序的狀態(tài), 引起程序崩潰, 或者導(dǎo)致不想看到的程序行為, 如同神經(jīng)錯(cuò)亂. CLR4.0針對未捕獲異常做了一種可配置的處理機(jī)制. 請看下面的程序. 在CLR2.0里, 這個(gè)catch (Exception ex) 將所有可能發(fā)生的異常都捕獲. 在CLR4.0里, 默認(rèn)情況下這個(gè)超級catch不會生效, 一旦出現(xiàn)異常就會導(dǎo)致程序停止.

class Program
{
    static void Main(string[] args)
    {
        SaveFile("file.txt");
        Console.ReadLine();
    }
    public static void SaveFile(string fileName)
    {
        try
        {
            FileStream fs = new FileStream(fileName, FileMode.Create);
        }
        catch (Exception ex)
        {
            Console.WriteLine("File open error");
            throw new IOException();
        }
    }
}

因?yàn)榇嬖谀承┨厥馇闆r, 需要改變默認(rèn)的策略. CLR 4.0提供了兩種定制的手段

[HandleProcessCorruptedStateExceptions]方法標(biāo)注(Method attribute)

在需要超級catch的方法前面加上這個(gè)標(biāo)注.就可以讓超級catch生效, 如下:

[HandleProcessCorruptedStateExceptions]
public static void SaveFile(string fileName)
{
    try
    {
        FileStream fs = new FileStream(fileName, FileMode.Create);
    }
    catch (Exception ex)
    {
        Console.WriteLine("File open error");
        throw new IOException();
    }
}

 

注:這個(gè)方式只能在此方法內(nèi)生效. 在其它地方還是按CLR4.0的默認(rèn)方式處理。config配置文件如果想在整個(gè)應(yīng)用級改變這個(gè)策略, 就在config配置文件中寫上

<?xml version="1.0"?>
<configuration>

  <runtime>
    <legacyCorruptedStateExceptionsPolicy enabled="true"/>
  </runtime>
</configuration>

 

【編輯推薦】

  1. 在CLR之上的構(gòu)建領(lǐng)域特定語言
  2. 探秘CLR 4.0中的代碼契約
  3. ASP.NET全局異常處理淺析
責(zé)任編輯:彭凡 來源: www.cnblogs.com/mikelij/
相關(guān)推薦

2009-03-11 10:29:23

代碼契約.NETCLR

2010-01-05 09:26:13

.NET 4.0

2009-07-24 17:22:22

CLR 4.0安全模型

2009-10-20 15:03:29

ExpandoObje

2013-08-27 15:03:18

PowerShell

2009-08-10 18:16:33

ICustomQuer.NET 4.0

2009-10-19 14:25:16

靜態(tài)構(gòu)造函數(shù)

2018-11-15 14:05:24

MongoDB數(shù)據(jù)庫事務(wù)

2009-09-03 14:26:17

Jit編譯

2009-09-04 16:28:05

ASP.NET 4.0

2011-01-14 10:27:18

C#.netasp.net

2023-03-30 14:45:51

工業(yè)4.0物聯(lián)網(wǎng)

2009-08-19 16:51:14

C# 4.0 dyna

2010-08-05 13:08:44

Eclipse SDKEclipse E4

2009-05-26 09:28:22

C# 4.0dynamic動態(tài)類型

2009-12-30 10:21:36

.NET 4.0

2023-11-29 15:53:45

2018-08-20 16:25:48

編程語言Java異常處理

2011-04-08 17:53:33

OSPF

2024-04-30 11:14:19

KubernetesReplicaSet數(shù)量
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號