C#複習⑦

C#複習⑦app

2016年6月22日ide

11:50spa

Main Exception & Namespaces & Assemblies 異常 & 命名空間 & 程序集3d

1.try 語句版本控制

舉例說明code

FileStream s = null;

try {

s = new FileStream(curName, FileMode.Open);

...

} catch (FileNotFoundException e) {

Console.WriteLine("file {0} not found", e.FileName);

} catch (IOException) {

Console.WriteLine("some IO exception occurred");

} catch {

Console.WriteLine("some unknown error occurred");

} finally {

if (s != null) s.Close();

}

注意:blog

catch語句的執行是順序執行的;繼承

finally語句總會被執行;ip

在捕獲子句中能夠省略異常參數名稱;get

異常類都繼承自System.Exception;

2.System.Exception

屬性:

e.Message        the error message as a string;
                set by new Exception(msg);

e.StackTrace        trace of the method call stack as a string

e.Source        the assembly that threw the exception

e.TargetSite        the method that threw the exception

方法:

e.ToString()         returns the name of the exception and the StackTrace

3.Throwing an Exception拋出異常

經過非法操做:

除以0操做;

下表越界;

調用空引用;

經過throw語句:

throw new MyException(10);

class MyException : ApplicationException {

public int errorCode;

public MyException(int x) { errorCode = x; }

}

4.異常類

clip_image002

5.catch語句的搜索路徑

clip_image004

clip_image006

6.C#異常與Java異常的對比

clip_image008

7.委託中的異常以及多播委託中的異常

委託中的異常處理:

clip_image010

多播委託中的異常處理:

clip_image012

8.C# Namespaces VS Java Packages

clip_image014

clip_image016

9.Assemblies

Assembly: 版本控制的最小單元;動態加載的最小單元;

包括manifest、codes + Metadata

clip_image018

9.Namespaces VS Assemblies

Namespaces: 編譯時構造;控制可見性;

Assemblies: 運行時構造;控制動態加載以及版本控制;可能包含來自不一樣Namespaces下的類型;

clip_image020

clip_image022

10.Compiler Options 編譯時指令選擇

clip_image024

clip_image026

11.Versioning of Assemblies 版本控制

版本號存儲在Assembly中,每次Assembly加載都會進行版本號的檢查

clip_image028

12.Private and Public Assemblies

Private Assembly:

只能被一個應用程序使用;

is used by only one application

保存在應用程序目錄中;

resides in the application directory

沒有強命名;

does not have a "strong name"

沒法簽名;

cannot be signed

Public Assembly (or shared assembly):

能夠被全部應用程序使用;

can be used by all applications

保存在全局Assembly中

resides in the Global Assembly Cache (GAC)

必須有一個強命名;

must have a "strong name"

能夠簽名;

can be signed

GAC保存着各類相同名字的Assemblies可是有着不一樣的版本號;

GAC can hold assemblies with the same name but with different version numbers

13.Strong Names & Signing Assemblies &Checking the Signature

強命名包括四個部分:

Assembly的命名

Assembly的版本號;

Assembly的文化屬性;

Assembly的公鑰。

(1) Generate a key file with sn.exe (Strong Name Tool)

(2) Sign the assembly with the AssemblyKeyFile attribute

clip_image030

即便是在相同的namespace下若是被internal修飾的類命名在不一樣的Assembly下也是不能夠使用的。

clip_image032

相關文章
相關標籤/搜索