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();
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下也是不可以使用的。

C#复习⑦的更多相关文章
- iOS总结_UI层自我复习总结
UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...
- vuex复习方案
这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧.
- 我的操作系统复习——I/O控制和系统调用
上篇博客介绍了存储器管理的相关知识——我的操作系统复习——存储器管理,本篇讲设备管理中的I/O控制方式和操作系统中的系统调用. 一.I/O控制方式 I/O就是输入输出,I/O设备指的是输入输出设备和存 ...
- 复习(1)【Maven】
终于开始复习旧知识了,有输入必然要有输出.输入和输出之间的内化过程尤为重要,在复习的同时,真正把学到的东西积淀下来,加深理解. Maven项目概念与配置 Maven是一个项目管理和综合工具.Maven ...
- 《CSS权威指南》基础复习+查漏补缺
前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...
- JS复习--更新结束
js复习-01---03 一 JS简介 1,文档对象模型 2,浏览器对象模型 二 在HTML中使用JS 1,在html中使用<script></script>标签 2,引入外部 ...
- jQuery 复习
jQuery 复习 基础知识 1, window.onload $(function(){}); $(document).ready(function(){}); 只执行函数体重的最后一个方法,事 ...
- jQuery5~7章笔记 和 1~3章的复习笔记
JQery-05 对表单和表格的操作及其的应用 JQery-06 jQuery和ajax的应用 JQery-07 jQuery插件的使用和写法 JQery-01-03 复习 之前手写的笔记.实在懒得再 ...
- HTML和CSS的复习总结
HTML(Hypertext Markup Language)超文本标记语言:其核心就是各种标记!<html> HTML页面中的所有内容,都在该标签之内:它主要含<head>和 ...
- 2017年1月1日 java学习第二天复习
今天是新年的第一天,以前学习没有总结习惯,学习效率和成果都很不好. 学习的过程就是反复的复习和不断学习的过程,开始今天的学习总结 学习java的第二天. 今天学习了java最基础的一些内容,照着 ...
随机推荐
- Dapper学习 - Dapper.Rainbow(三) - Read
前面已经介绍了新增/修改/删除了, 接下来介绍一下Rainbow的Read方法. 一.Read -- Rainbow原生 1. 先看测试代码 var conStr = ConfigurationMan ...
- 从CPU的运行到函数调用做个了解
CPU的内部结构 我们都知道CPU是一台电脑的核心部件,所有的程序都是通过它运行的,那么CPU是如何让一个程序跑起来的呢?我们今天就来一起简单的做个了解,首先看下CPU的基本结构 程序流程 假如现在我 ...
- MVC上传文件
ASP.NET MVC上传文件是必段撑握的知识.加强训练才是.以前Insus.NET曾使用第三方MyAjaxForm.js :http://www.cnblogs.com/insus/p/378548 ...
- MongoDB管理工具的插件系统
MongoDB管理工具 MongoCola的开发已经进入第三个年头了. 官方对于C#驱动的投入不够导致了很多东西都必须自己实现,但是不管怎么样,工具现在已经很强大了. 最近准备着手插件系统的开发,简 ...
- 改变 TMemo 的背景颜色 (Firemonkey)
说明:展示使用程序码改变 Firemonkey TMemo 的背景颜色. 适用:XE6 源码下载:[原創]Memo改背景色_XE6.zip //---------------------------- ...
- X3D中Profile如何翻译
问题在哪 在计算机术语中,Profile其实是很难用中文对应的词汇来翻译的一个单词. 在X3D国际标准中,就出现了Profile.它把软件产品对X3D的功能实现范围和相应支持程度做了预先的约定,分为C ...
- 【算法和数据结构】_12_小算法_abs_fabsf_fabsd_大端小端判断
最近学习要用到求绝对值函数,看了一下有很多种的abs函数,因此想自己实现这些代码. 下面是我进行测试的代码: #include <stdio.h> typedef unsigned int ...
- tp5页面输出时,搜索后跳转下一页的处理
tp5页面输出时,搜索功能在跳转下一页时,如果不做任何处理,会返回原有是第二页输出的数据.为了保证跳转下一页时输出的是搜索到的数据,做以下处理. (要根据自己的搜索字段进行适当修改) 页面js代码,给 ...
- 超强教程:如何搭建一个 iOS 系统的视频直播 App?
现今,直播市场热火朝天,不少人喜欢在手机端安装各类直播 App,便于随时随地观看直播或者自己当主播.作为开发者来说,搭建一个稳定性强.延迟率低.可用性强的直播平台,需要考虑到部署视频源.搭建聊天室.优 ...
- python 学习笔记7(装饰器)
闭包(closure)是函数式编程的重要的语法结构. 定义:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure). def outer ...