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#复习⑦的更多相关文章

  1. iOS总结_UI层自我复习总结

    UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...

  2. vuex复习方案

    这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧.

  3. 我的操作系统复习——I/O控制和系统调用

    上篇博客介绍了存储器管理的相关知识——我的操作系统复习——存储器管理,本篇讲设备管理中的I/O控制方式和操作系统中的系统调用. 一.I/O控制方式 I/O就是输入输出,I/O设备指的是输入输出设备和存 ...

  4. 复习(1)【Maven】

    终于开始复习旧知识了,有输入必然要有输出.输入和输出之间的内化过程尤为重要,在复习的同时,真正把学到的东西积淀下来,加深理解. Maven项目概念与配置 Maven是一个项目管理和综合工具.Maven ...

  5. 《CSS权威指南》基础复习+查漏补缺

    前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...

  6. JS复习--更新结束

    js复习-01---03 一 JS简介 1,文档对象模型 2,浏览器对象模型 二 在HTML中使用JS 1,在html中使用<script></script>标签 2,引入外部 ...

  7. jQuery 复习

    jQuery 复习 基础知识 1, window.onload $(function(){});   $(document).ready(function(){}); 只执行函数体重的最后一个方法,事 ...

  8. jQuery5~7章笔记 和 1~3章的复习笔记

    JQery-05 对表单和表格的操作及其的应用 JQery-06 jQuery和ajax的应用 JQery-07 jQuery插件的使用和写法 JQery-01-03 复习 之前手写的笔记.实在懒得再 ...

  9. HTML和CSS的复习总结

    HTML(Hypertext Markup Language)超文本标记语言:其核心就是各种标记!<html> HTML页面中的所有内容,都在该标签之内:它主要含<head>和 ...

  10. 2017年1月1日 java学习第二天复习

    今天是新年的第一天,以前学习没有总结习惯,学习效率和成果都很不好.  学习的过程就是反复的复习和不断学习的过程,开始今天的学习总结   学习java的第二天. 今天学习了java最基础的一些内容,照着 ...

随机推荐

  1. IOS 通用颜色快速生成代码

    通常情况下我们是直接使用类似于#EE1289这样的代码来直接表示RGB颜色的.但是在IOS语言中,它的颜色表示方式比较另类,他是使用一个0-1的小数来表示颜色值的.这样的实现,或许能够表示更多的颜色值 ...

  2. 删除html元素

    如果需要将id是‘div2js’的div元素删除. 1.使用DOM对象 首先需要找到被删元素的父元素,通过父元素将其需要删除的子元素删除. var el = document.getElementBy ...

  3. jquery.form.js实现异步上传

    前台页面 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewpor ...

  4. LINQ的Except方法

    在两个集合中,左边集合减去右边集合的元素: source code: List<int> a = new List<int>{ { }, { }, { } }; List< ...

  5. Socket开发框架之数据加密及完整性检查

    在前面两篇介绍了Socket框架的设计思路以及数据传输方面的内容,整个框架的设计指导原则就是易于使用及安全性较好,可以用来从客户端到服务端的数据安全传输,那么实现这个目标就需要设计好消息的传输和数据加 ...

  6. 【CTO讲堂】以API为核心的移动应用云大发展时代

    摘要:CTO线上讲堂5月20日正式登场,CTO俱乐部首期邀请到APICloud联合创始人兼CTO邹达与C粉之家微信群友一起聊聊如何快速玩转App开发,分享技术人的职场成长. 为了帮助IT从业者职业之路 ...

  7. vim退出后终端保留 退出前的内容

    export TERM=linux 或者 具体选项 可以看看secrecrt的选项

  8. 回文字算法(java版本)

    package com.gdh.backtext;import java.util.HashMap;import java.util.Map;import java.util.Map.Entry; p ...

  9. 【FOL】第九周

    不知不觉又是三周过去了. 这几周忙了一下,其他时间全都在搞服务端,简直是酸爽的不行...不过还好出了些成果. 目前服务端有: 1.版本服务:游戏版本更新 2.账号服务:用户身份验证,返回各种连接(代理 ...

  10. Android 亮度调节

    最近在做一个App的设置项,亮度调节.真正做时,发现Android亮度调节比预想要复杂一些.其实目前网上已有不少这方面的资料,但有些博文具有一定误导性.在此将这块内容按照自己理解整理一下. 整体上看, ...