程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#復習⑦,

C#復習⑦,

編輯:C#入門知識

C#復習⑦,


C#復習⑦

2016年6月22日

11:50

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

1.try 語句

舉例說明

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();

}

注意:

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

finally語句總會被執行;

在捕獲子句中可以省略異常參數名稱;

異常類都繼承自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.異常類

5.catch語句的搜索路徑

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

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

委托中的異常處理:

8.C# Namespaces VS Java Packages

9.Assemblies

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

包括manifest、codes + Metadata

9.Namespaces VS Assemblies

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

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

10.Compiler Options 編譯時指令選擇

11.Versioning of Assemblies 版本控制

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved