分层架构
定义:将解决方案中功能不同的模块分到不同的项目中实现,每一层中的组件应该保持内聚性,每一层都应与它下面的各层保持
松耦合。
简单地分层架构有两层:数据访问层(DAL)和表示层(UI层),前者处于最底层,负责与数据库的交互,后者直接和用户打交道。
其中的关系为表示层依赖于数据访问层,两层职能分开,协同工作。经过分层,无论哪一层的实现被改变,只要层于层之间通信
的接口不发生变化,其它层都不会受到影响。
搭建分层架构
步骤:创建类库→添加数据访问层→添加依赖关系→调用数据访问层
分层开发的优点
1.代码复用
2.分离开发人员的关注
3.无损替换
4.降低了系统间的依赖
.NET异常处理
Exception类 | 说明 |
SystemException | 提供系统异常和应用程序异常之间的区别 |
System.SQLException | 当SqlServer返回警告或者错误时引发的异常 |
ArgumentNullException | 当将空引用传递给不接受它作为有效参数的方法时引发的异常 |
FileNotFoundException | 试图访问磁盘上不存在的文件失败时引发的异常 |
IOException | 当出现I/O错误时,引发此异常 |
ApplicationException | 在应用程序执行过程中监测到由应用程序定义的异常 |
属性 | 说明 |
Message | 提供引起异常的详细信息 |
Source | 表示导致异常发生的应用程序或对象的名称 |
StackTrace | 提供在堆栈上所调用方法的详细信息,并首先显示最近调用的方法 |
InnerException | 对内部异常的引用,如果此异常基于前一个异常,则内部异常指最初发生的异常 |
异常的多路捕捉:
多路捕捉即一个try块后面跟有多个catch块,catch块中的异常类型不同,子类型异常在前,父类型异常在后。
throw关键字:
throw关键字的作用是引发异常,引发的异常是一个对象,派生自Exception类。例:
1 //追溯到异常的起点 2 try 3 { 4 //省略代码 5 } 6 catch(Exception ex) 7 { 8 throw; 9 } 10 11 12 13 //捕捉所有的异常类型 14 try 15 { 16 //省略代码 17 } 18 catch 19 { 20 throw; 21 } 22 23 24 25 //重置堆栈中异常的起点 26 try 27 { 28 //省略代码 29 } 30 catch(Exception ex) 31 { 32 throw ex; 33 } 34 35 36 37 38 //自定义异常信息 39 try 40 { 41 //省略代码 42 } 43 catch(Exception ex) 44 { 45 throw new Exception("异常信息"); 46 }