博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#复习⑦
阅读量:5015 次
发布时间:2019-06-12

本文共 2266 字,大约阅读时间需要 7 分钟。

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

即使是在相同的namespace下如果被internal修饰的类命名在不同的Assembly下也是不可以使用的。

转载于:https://www.cnblogs.com/zpfbuaa/p/5606840.html

你可能感兴趣的文章
[思路]导入导出功能
查看>>
【iOS】UICollectionView自己定义Layout之蜂窝布局
查看>>
发布aar到jcenter
查看>>
跨浏览器问题的五种解决方案
查看>>
XPath定位时,使用文本的方法小技巧。
查看>>
ch02 fundamental definition 01
查看>>
JSON解析
查看>>
Jquery Uploadify3.21.与2.1版本 使用中存在的问题--记录三
查看>>
Linux查看进程的内存占用情况 分类: ubuntu ...
查看>>
[BZOJ 2818]Gcd
查看>>
160. Intersection of Two Linked Lists
查看>>
人生苦短,我用python-- Day11
查看>>
JAVA Bean
查看>>
ehcache memcache redis 三大缓存男高音_转
查看>>
curd_3
查看>>
百度地图API示例之设置地图显示范围
查看>>
Java构造方法、重载及垃圾回收
查看>>
.Net Core AES加密解密
查看>>
Spring Quartz实现任务调度
查看>>
python | 桶排序、冒泡排序、选择排序、去重
查看>>