系统出错信息设计

系统出错信息设计

文件标识:
DWR-WRALM-DS-DTDS

当前版本:
0.928

做者:
郑力

完成日期:
2004-09-28






版 本 历 史

版本/状态
做者
参与者
起止日期
备注

草稿
郑力

0.9.918


草稿
郑力
2004-09-21
2004-09-21


草稿
郑力
2004-09-28
2004-09-28









1 文档介绍
1.1 文档目的
试图阐述系统出错在一个系统中所起重要做用,使系统更加健壮.系统出错如何设计并运用到系统中.以及异常出错信息的维护等状况.

1.2 读者对象
提示:指出预期的读者。详细设计的读者通常包括项目主管、开发人员、测试人员以及维护人员等。

1.3 参考文档
提示:列出本文档的全部参考文献(能够是非正式出版物),如:

a.本项目的经核准的计划任务书或合同、上级机关的批文;

b.属于本项目的其余已发表的文件;

c.本文件中各处引用的文件、资料、包括所要用到的软件开发标准。

列出这些文件资料的标题、文件编号、发表日期和出版单位,说明可以获得这些文件资料的来源。做者,文献名称,出版单位(或归属单位),日期等。

格式例如:

[1] 许新宜、王浩、甘泓等,华北地区宏观经济水资源规划理论与方法,黄河水利出版社,1997.10。

1.4 术语与缩写解释
缩写、术语
解 释

DWR
水资源所

WRALM
水资源配置模型

DN
设计 design

DTDS
详细设计 detail design





















2 体系结构设计
2.1 体系整体结构设计
2.1.1 体系整体设计结构图

其描述为:

在上图的上部是软件工程系统中所面临的解决问题的部分.其中会有错误异常的发生.

根据编写定制的须要,须要错误异常处理机制进行处理,根据规则须要,错误异常可能会直接返回给相应的发生问题的部分,也可能须要交给应用客户端或使用者进行干预从而肯定是否返回给发生问题的部分.

2.1.2 什么是错误异常
简单地说,错误异常表明了应用程序的某种状态(错误或异常状态),也就是所谓“异常情况”。一般,这种应用程序中出现的异常会产生某些类型的错 误,并且异常自身也会采用某些方式来描述错误的情况。当程序中发生异常时,它会沿着函数调用链传递直到发生如下两种状况:发现了可以处理异常的处理器或者 异常被扔出应用程序的主要方法,在这种状况之下就会触发缺省的异常处理器。一般也就意味着结束程序的运行。

可以探察错误的一方不知道如何处理错误,知道如何处理错误的一方没有能力探察错误,而直接采用防护性代码来解决,会使得程序的正常结构被打乱,从而带来更 多的错误。这种困境是很是难以应对的——费心耗力而未必有回报。所以,更多的人采用鸵鸟战术,对可能发生的错误视而不见,任其天然。

2.1.3 错误异常在系统中的做用
错误异常是一个系统的重要组成部分.在调试,测试以及运行时都有重要做用.

在调试阶段,可以清楚的告诉软件开发人员,在代码的哪行出了错误,是什么方法或哪一个方法调用了哪一个方法,存在于哪一个文件等状况.总之,使软件开发人员很清 楚的明白哪一个地方错了,以及造成错误的缘由是什么等状况的说明.这样便于软件开发人员努力修订本身的程序,尽可能避免相似状况发生.

在测试阶段便于测试人员写出测试文档,在测试文档中,相关人员便于理解并修订原程序.须要提供必要的软件开发人员名称,软件版本号,以及写做时间和运行时间.

在运行阶段,须要提供给用户尽量的友好信息,便于理解和交互.

2.1.4 错误异常处理机制和原则
由Try代码块保护的代码所发生的任何异常,甚至包括在不含Try代码块的被调函数或

方法之内的异常都将被Catch代码块内的代码处理。固然,除非catch代码块本身也扔出了

异常,而在这种状况下异常会被扔到下一个级别更高的try代码块,哪怕那意味着从当前正

在执行的函数中扔出异常。

异常的4条重要规则

若是catch块有若干个,那么异常将根据其类型被扔给最适当的一个catch接受处理。
若是没有找到可接受的catch块,则异常被从当前的try块扔到从调用顺序链中找到的下一个可用的catch块。
异常对象的类型给出了发生错误本质的重要信息。
异常能够经过throw关键词显式扔出。
代码就能够选择性地只处理那些有能力处理的错误,同时相信其余问题都会通通交给调用堆栈,哪怕至少做为通知处理。在实际应用中,由于让CLR观察扔出的异常对性能有必定的影响,因此使用单个try块同时对应多个特殊异常的catch语句是检查代码多个特定错误的最佳方式。

2.2 错误异常状况
根据系统应用,常见错误异常分为数据存储部分,应用部分,核心库部分,商业层部分.

数据存储部分:主要系统在与数据库产品交互时,常见的一些错误.好比数据库链接错误,数据库对象不存在或数据字符过多.

应用部分:主要是反映用户在键盘输入操做时,可能引发的数据类型错误,字符长度超过限制等,使用鼠标或键盘可能引发的操做错误等.

核心库部分:主要反映系统框架中的一些错误.好比数组下标越界,数字超出范围等.

商业层部分:主要反映系统中的一些如权限被拒绝,输入参数错误等.

2.2.1 数据存储部分:
该部分咱们在异常中主要使用三个类:SqlException,OracleException以及OleDbExcetion.

建议最后不要用OdbcException.其错误代码范围为:100000---200000.

2.2.1.1 SqlServer:
ErrorCode范围: 100000--- 200000 --SqlException

2.2.1.2 Oracle:
ErrorCode范围: 100000----200000-- OracleException

2.2.1.3 Access:
L暂缺)

ErrorCode范围: 100000----200000-- OleDbException

2.2.1.4 DB:
L暂缺)

ErrorCode范围: 100000----200000-- OleDbException

2.2.1.5 Sybase:
L暂缺)

ErrorCode范围: 100000----200000-- OleDbException

2.2.1.6 MySql:
L暂缺)

ErrorCode范围: 100000----200000-- OleDbException

2.2.1.7 其它:
L暂缺)

ErrorCode范围: 100000----200000—OleDbException

2.2.2 应用部分
此部分根据不一样的商业应用或目的不一样,就有不少的差异.

因此仅给出错误代码范围1---100000.具体提示信息由软件开发人员,软件设计人员及系统相关人员进行商议.并在软件发行时使用AppError.resources文件

ApplicationException;

2.2.3 核心库部分
该部分包括系统核心模型.根据其应用不一样,其消息也有所不一样.

其错误代码范围为10000---50000

Framework系统平台错误代码(10000---10500),此处是指平台库提供的内部错误.其Exception参见.NET异常处理类.

AppError.resources

2.2.4 商业层部分
该部分包括绝大多数的商业应用,其错误代码范围为50000---100000

AppError.resources

2.3 错误异常信息存取维护设计
2.3.1 运行时数据格式:
数据格式说明:

字段
数据类型
中文描述
说明
备注

ErrCode
System.Int32
错误代码



ErrMsg
System.String
错误描述信息



CreateTime
System.DateTime
发生时间







2.3.2 测试时(系统模块)数据格式:
数据格式说明:

字段
数据类型
中文描述
说明
备注

ErrProgrammer
System.String
开发人员



ErrAssmbly
System.String
装配件名称



ErrCode
System.Int32
错误代码



ErrMsg
System.String
错误描述信息



CreateTime
System.DateTime
发生时间







2.3.3 调试时数据格式:
数据格式说明:

字段
数据类型
中文描述
说明
备注

ErrSource
System.String
源代码文件



ErrMethod
System.String
发错错误的方法名称



ErrLine
System.Int32
发生错误所在的行数



ErrProgrammer
System.String
开发人员



ErrAssmbly
System.String
装配件名称



ErrCode
System.Int32
错误代码



ErrMsg
System.String
错误描述信息



CreateTime
System.DateTime
发生时间







2.3.4 数据维护:
相关人员编辑编辑AppError.xml.便可.

该文件也是个累积过程,如数据库方面的错误信息,在个类型数据库中,根据数据库操做

自己返回的错误代码,不一样厂商也有不一样的编码,因此,咱们须要积累这方面的知识,使它达到

正确的预报错误信息的目的.

2.4 错误异常设计
根据错误异常在系统中的做用 和 错误异常状况,进行以下设计:

程序的三个阶段.调试,测试,发布.因此该类中须要使用到预编译指令来解决这个问题.

同时也就根据三个阶段,显示不一样的信息给用户.

定义于编译指令:

#define DEBUG

#define TEST

#define RUN

实现上述所描述的结果.

UML关系图:


根据用户传入的ErrorCode,在AppError.resources中查找相应的MsgInfo并返回.

2.5 错误异常实现()
2.5.1 interface Ibase
属性:

属性名称
数据类型
可见性
说明
缺省值

Name
System.String

名称


ID
Int32

编号





public interface IBase

{

}

2.5.2 class QingLiuName
此类须要实现接口Ibase.

字段

字段名称
数据类型
可见性
说明
缺省值

Name
System.String
private
名称


Id
Int32
private
编号
-1




public abstract class QingLiuName:IBase

{

}



2.5.3 class SoftwareEngineer
此类从QingLiuName中继承过来

属性

属性名称
数据类型
可见性
说明
缺省值

ModuleName
System.String

名称





字段

属性名称
数据类型
可见性
说明
缺省值

moduleName
System.String
private
模块名称





public class SoftwareEngineer:QingLiuName

{

}

2.5.4 interface IException
属性:

属性名称
数据类型
可见性
说明
缺省值

Exception
System.Exception
Get
异常类


SoftwareEngineer
SoftwareEngineer
Get
开发人员类





public interface IException

{

}

2.5.5 delegate ExceptionEventHandle
异常委托,用于实现定制的错误异常消息反馈.

public delegate void ExceptionEventHandle(object sender,System.EventArgs e);

2.5.6 interface Iserializable
系统平台提供.

public interface System.Runtime.Serialization.ISerializable
{
}

2.5.7 class Exception
系统平台提供.

public class Exception :
object,
System.Runtime.Serialization.ISerializable
{
}

2.5.8 class BaseException
属性:

属性名称
数据类型
可见性
说明
缺省值

Exception
Exception

异常类


SoftwareEngineer
SoftwareEngineer

开发人员类


MsgID
Int32
Get
异常代码


OnExceptionHandle
ExceptionEventHandle

回调函数





字段

字段名称
数据类型
可见性
说明
缺省值

_exception
Exception
internal
异常类


_softwareEngineer
SoftwareEngineer
internal
开发人员类


makeTime
DateTime
internal
发生时间


MsgID
Int32
internal
异常代码


ErrMsg
String
Internal
异常信息


onExceptionHandle
ExceptionEventHandle
internal
回调函数





方法:

可见性
方法名称
返回类型
输入参数
输入参数类型
功能

public static
OnShowExceptionMessage
DialogResult
sender
object
根据传入的sender,解析错误异常类.并返回给调用者.




e
EventArgs

virtual internal
OnExceptionCall
Void


根据三个不一样阶段进行相应处理.并返回什么时候的消息

Pubic static virutal
GetMsg
String
errorCode
Int
根据错误编码返回相应的信息

Public virutal
GetMsg
String


根据错误编码返回相应的信息

Public

Virtual
GetResourceFile
String
languageType
CultureInfo
根据资源化获取错误文件的名称,从而肯定了返回消息的编码.主要使用在软件的发布阶段和软件的定位上是否可用.

Public

virtual
GetResponse
String
msg
DialogResult
该方法调用消息窗体,显示错误异常消息,并等待用户交互结果.




2.5.9 class QLException
该类从BaseException继承而来,并实现接口IException.

public class QLException:System.Exception,IException,System.Runtime.Serialization.ISerializable

{

}

2.5.10 interface IDBException
该接口继承了接口IException.

属性:

属性名称
数据类型
可见性
说明
缺省值

SqlException
SqlException




OracleException
OracleException




OleDbExcetion
OleDbExcetion







public interface IDBException:IException

{

}

2.5.11 class QLDBException
该类从BaseException继承而来.并实现接口IDBException.

字段

字段名称
数据类型
可见性
说明
缺省值

_sqlException
SqlException
private



_oracleException
OracleException
private



_oleDbExcetion
OleDbExcetion
private






该类从QLException继承而来,并实现IDBException接口,Iserializable接口.

public class QLDBException:QLException,IDBException,System.Runtime.Serialization.ISerializable

{

}

2.5.12 可扩展接口
2.5.12.1 发送邮件
interface ISendMail{
}

2.5.12.2 写入数据库
interface IWriteData{
}

2.5.12.3 写入文件
interface IWriteFile{
}

2.5.12.4 写入系统日志
interface IWriteSystemLog{
}



3 .net工程设计
3.1 工程名:
ExceptionError. Csproj

3.1.1 文件名称
BaseException.cs

QingLiuException.cs

QingLiuName.cs

QingLiuObject.cs

QLDBException.cs

SoftwareEngineer.cs

IBase.cs

IDBException.cs

IException.cs

QLDelegate.cs

4 界面的设计
4.1 界面

4.2 界面资源
4.2.1 图标
4.2.1.1 窗体图标一个
4.2.1.2 异常类别图标个数用级别总数肯定
4.2.1.3 按钮图标4个.
4.2.2 界面表现组件
4.2.2.1 图片控件一个
4.2.2.2 标签一个
4.2.2.3 按钮若干
4.3 美学设计(美工进行指导)


5 模块设计


5.1 错误异常实现()
5.1.1 interface IBase
public interface IBase

{

}

5.1.2 class QingLiuName
public abstract class QingLiuName:IBase

{

}

5.1.3 class SoftwareEngineer
public class SoftwareEngineer:QingLiuName

{

}

5.1.4 interface IException
public interface IException

{

}

5.1.5 delegate ExceptionEventHandle
public delegate void ExceptionEventHandle(object sender,System.EventArgs e);

5.1.6 interface ISerializable
public interface System.Runtime.Serialization.ISerializable
{
}

5.1.7 class Exception
public class Exception :
object,
System.Runtime.Serialization.ISerializable
{
}

5.1.8 class QLException
public class QLException:System.Exception,IException,System.Runtime.Serialization.ISerializable

{

}

5.1.9 interface IDBException
public interface IDBException:IException

{

}

5.1.10 class QLDBException
public class QLDBException:QLException,IDBException,System.Runtime.Serialization.ISerializable

{

}



6 运行实例
6.1 用例代码:
new QLException(e1,100);



6.2 用例 1



6.3 异常维护
编辑AppError.xml.包括相应的多语言版本的文件

7 其它设计


8 附属文件清单及文件
8.1 .NET异常处理类:
8.1.1.1 class System.Reflection.Emit.__ExceptionInfo
8.1.1.2 struct System.Reflection.Emit.__ExceptionInstance
8.1.1.3 sealed class System.Data.SqlClient._ValueException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.4 public sealed class System.Reflection.AmbiguousMatchException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.5 public class AppDomainUnloadedException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.6 public class ApplicationException :
Exception,
System.Runtime.Serialization.Iserializable
8.1.1.7 public class ArgumentException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.8 public class ArgumentNullException :
ArgumentException,
System.Runtime.Serialization.Iserializable
8.1.1.9 public class ArgumentOutOfRangeException :
ArgumentException,
System.Runtime.Serialization.Iserializable
8.1.1.10 public class ArithmeticException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.11 public class ArrayTypeMismatchException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.12 public class BadImageFormatException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.13 class System.Web.HttpApplication+CancelModuleException :
object
8.1.1.14 public class CannotUnloadAppDomainException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.15 public class System.ComponentModel.Design.CheckoutException :
System.Runtime.InteropServices.ExternalException,
System.Runtime.Serialization.Iserializable
8.1.1.16 public class System.ComponentModel.Design.Serialization.CodeDomSerializerException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.17 public class System.CodeDom.CodeThrowExceptionStatement :
System.CodeDom.CodeStatement
8.1.1.18 public class System.Runtime.InteropServices.COMException :
System.Runtime.InteropServices.ExternalException,
System.Runtime.Serialization.Iserializable
8.1.1.19 public class System.Configuration.ConfigurationException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.20 public class System.Data.ConstraintException :
System.Data.DataException,
System.Runtime.Serialization.Iserializable
8.1.1.21 public class ContextMarshalException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.22 public class System.Net.CookieException :
FormatException,
System.Runtime.Serialization.Iserializable
8.1.1.23 public class System.Security.Cryptography.CryptographicException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.24 public class System.Security.Cryptography.CryptographicUnexpectedOperationException :
System.Security.Cryptography.CryptographicException,
System.Runtime.Serialization.Iserializable
8.1.1.25 public class System.Reflection.CustomAttributeFormatException :
FormatException,
System.Runtime.Serialization.Iserializable
8.1.1.26 public class System.Data.DataException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.27 public sealed class System.Data.DBConcurrencyException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.28 public class System.Data.DeletedRowInaccessibleException :
System.Data.DataException,
System.Runtime.Serialization.Iserializable
8.1.1.29 public class System.IO.DirectoryNotFoundException :
System.IO.IOException,
System.Runtime.Serialization.Iserializable
8.1.1.30 public sealed class System.Web.Services.Discovery.DiscoveryExceptionDictionary :
System.Collections.DictionaryBase,
System.Collections.IDictionary,
System.Collections.ICollection,
System.Collections.Ienumerable
8.1.1.31 public class DivideByZeroException :
ArithmeticException,
System.Runtime.Serialization.Iserializable
8.1.1.32 public class DllNotFoundException :
TypeLoadException,
System.Runtime.Serialization.Iserializable
8.1.1.33 public class System.Data.DuplicateNameException :
System.Data.DataException,
System.Runtime.Serialization.Iserializable
8.1.1.34 public class DuplicateWaitObjectException :
ArgumentException,
System.Runtime.Serialization.Iserializable
8.1.1.35 public class System.IO.EndOfStreamException :
System.IO.IOException,
System.Runtime.Serialization.Iserializable
8.1.1.36 public class EntryPointNotFoundException :
TypeLoadException,
System.Runtime.Serialization.Iserializable
8.1.1.37 class System.Data.OleDb.OleDbException+ErrorCodeConverter :
System.ComponentModel.Int32Converter
8.1.1.38 public class System.Data.EvaluateException :
System.Data.InvalidExpressionException,
System.Runtime.Serialization.Iserializable
8.1.1.39 public class Exception :
object,
System.Runtime.Serialization.Iserializable
8.1.1.40 class System.Data.ExceptionBuilder :
object
8.1.1.41 class System.Windows.Forms.PropertyGridInternal.PropertyDescriptorGridEntry+ExceptionConverter :
System.ComponentModel.TypeConverter
8.1.1.42 class System.Windows.Forms.PropertyGridInternal.PropertyDescriptorGridEntry+ExceptionEditor :
System.Drawing.Design.UITypeEditor
8.1.1.43 class System.Net.ExceptionHelper :
object
8.1.1.44 public sealed class ExecutionEngineException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.45 class System.Data.ExprException :
System.Data.ExceptionBuilder
8.1.1.46 public class System.Runtime.InteropServices.ExternalException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.47 public class FieldAccessException :
MemberAccessException,
System.Runtime.Serialization.Iserializable
8.1.1.48 public class System.IO.FileLoadException :
System.IO.IOException,
System.Runtime.Serialization.Iserializable
8.1.1.49 public class System.IO.FileNotFoundException :
System.IO.IOException,
System.Runtime.Serialization.Iserializable
8.1.1.50 public class FormatException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.51 public sealed class System.Web.HttpCompileException :
System.Web.HttpException,
System.Runtime.Serialization.Iserializable
8.1.1.52 public class System.Web.HttpException :
System.Runtime.InteropServices.ExternalException,
System.Runtime.Serialization.Iserializable
8.1.1.53 public sealed class System.Web.HttpParseException :
System.Web.HttpException,
System.Runtime.Serialization.Iserializable
8.1.1.54 public sealed class System.Web.HttpRequestValidationException :
System.Web.HttpException,
System.Runtime.Serialization.Iserializable
8.1.1.55 public sealed class System.Web.HttpUnhandledException :
System.Web.HttpException,
System.Runtime.Serialization.Iserializable
8.1.1.56 public sealed class IndexOutOfRangeException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.57 public class System.Data.InRowChangingEventException :
System.Data.DataException,
System.Runtime.Serialization.Iserializable
8.1.1.58 public class System.IO.InternalBufferOverflowException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.59 public class System.Windows.Forms.AxHost+InvalidActiveXStateException :
Exception,
System.Runtime.Serialization.Iserializable
8.1.1.60 public class InvalidCastException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.61 public class System.Runtime.InteropServices.InvalidComObjectException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.62 public class System.Data.InvalidConstraintException :
System.Data.DataException,
System.Runtime.Serialization.Iserializable
8.1.1.63 class System.Web.Services.Discovery.InvalidContentTypeException :
Exception,
System.Runtime.Serialization.Iserializable
8.1.1.64 class System.Web.Services.Discovery.InvalidDocumentContentsException :
Exception,
System.Runtime.Serialization.Iserializable
8.1.1.65 public class System.ComponentModel.InvalidEnumArgumentException :
ArgumentException,
System.Runtime.Serialization.Iserializable
8.1.1.66 public class System.Data.InvalidExpressionException :
System.Data.DataException,
System.Runtime.Serialization.Iserializable
8.1.1.67 public class System.Reflection.InvalidFilterCriteriaException :
ApplicationException,
System.Runtime.Serialization.Iserializable
8.1.1.68 public class System.Runtime.InteropServices.InvalidOleVariantTypeException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.69 public class InvalidOperationException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.70 public class System.Drawing.Printing.InvalidPrinterException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.71 public sealed class InvalidProgramException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.72 public class System.IO.IOException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.73 public class System.IO.IsolatedStorage.IsolatedStorageException :
Exception,
System.Runtime.Serialization.Iserializable
8.1.1.74 public class System.ComponentModel.LicenseException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.75 public class System.Management.ManagementException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.76 public class System.Runtime.InteropServices.MarshalDirectiveException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.77 public class MemberAccessException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.78 public class System.Messaging.MessageQueueException :
System.Runtime.InteropServices.ExternalException,
System.Runtime.Serialization.Iserializable
8.1.1.79 public class MethodAccessException :
MemberAccessException,
System.Runtime.Serialization.Iserializable
8.1.1.80 public class MissingFieldException :
MissingMemberException,
System.Runtime.Serialization.Iserializable
8.1.1.81 public class System.Resources.MissingManifestResourceException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.82 public class MissingMemberException :
MemberAccessException,
System.Runtime.Serialization.Iserializable
8.1.1.83 public class MissingMethodException :
MissingMemberException,
System.Runtime.Serialization.Iserializable
8.1.1.84
public class System.Data.MissingPrimaryKeyException :
System.Data.DataException,
System.Runtime.Serialization.Iserializable
8.1.1.85 public sealed class MulticastNotSupportedException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.86 public class System.Data.NoNullAllowedException :
System.Data.DataException,
System.Runtime.Serialization.Iserializable
8.1.1.87 public class NotFiniteNumberException :
ArithmeticException,
System.Runtime.Serialization.Iserializable
8.1.1.88 public class NotImplementedException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.89 public class NotSupportedException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.90 public class NullReferenceException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.91 public class ObjectDisposedException :
InvalidOperationException,
System.Runtime.Serialization.Iserializable
8.1.1.92 public sealed class System.Data.Odbc.OdbcException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.93 public sealed class System.Data.OleDb.OleDbException :
System.Runtime.InteropServices.ExternalException,
System.Runtime.Serialization.Iserializable
8.1.1.94 public class OutOfMemoryException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.95 public class OverflowException :
ArithmeticException,
System.Runtime.Serialization.Iserializable
8.1.1.96 public class System.IO.PathTooLongException :
System.IO.IOException,
System.Runtime.Serialization.Iserializable
8.1.1.97 public class PlatformNotSupportedException :
NotSupportedException,
System.Runtime.Serialization.Iserializable
8.1.1.98 public class System.Security.Policy.PolicyException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.99 public class System.Net.ProtocolViolationException :
InvalidOperationException,
System.Runtime.Serialization.Iserializable
8.1.1.100 public class RankException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.101 public class System.Data.ReadOnlyException :
System.Data.DataException,
System.Runtime.Serialization.Iserializable
8.1.1.102 public sealed class System.Reflection.ReflectionTypeLoadException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.103 public class System.Runtime.Remoting.RemotingException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.104 public class System.Runtime.Remoting.RemotingTimeoutException :
System.Runtime.Remoting.RemotingException,
System.Runtime.Serialization.Iserializable
8.1.1.105 public class System.Data.RowNotInTableException :
System.Data.DataException,
System.Runtime.Serialization.Iserializable
8.1.1.106 public class System.Runtime.InteropServices.SafeArrayRankMismatchException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.107 public class System.Runtime.InteropServices.SafeArrayTypeMismatchException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.108 public class System.Security.SecurityException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.109 public class System.Runtime.InteropServices.SEHException :
System.Runtime.InteropServices.ExternalException,
System.Runtime.Serialization.Iserializable
8.1.1.110 public class System.Runtime.Serialization.SerializationException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.111 public class System.Runtime.Remoting.ServerException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.112 public class System.Web.Services.Protocols.SoapException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.113 public class System.Web.Services.Protocols.SoapHeaderException :
System.Web.Services.Protocols.SoapException,
System.Runtime.Serialization.Iserializable
8.1.1.114 public class System.Net.Sockets.SocketException :
System.ComponentModel.Win32Exception,
System.Runtime.Serialization.Iserializable
8.1.1.115 public sealed class System.Data.SqlClient.SqlException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.116 public sealed class System.Data.SqlTypes.SqlNullValueException :
System.Data.SqlTypes.SqlTypeException,
System.Runtime.Serialization.Iserializable
8.1.1.117 public sealed class System.Data.SqlTypes.SqlTruncateException :
System.Data.SqlTypes.SqlTypeException,
System.Runtime.Serialization.Iserializable
8.1.1.118 public class System.Data.SqlTypes.SqlTypeException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.119 public sealed class StackOverflowException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.120 public class System.Data.StrongTypingException :
System.Data.DataException,
System.Runtime.Serialization.Iserializable
8.1.1.121 public class System.Runtime.Remoting.MetadataServices.SUDSGeneratorException :
Exception,
System.Runtime.Serialization.Iserializable
8.1.1.122 public class System.Runtime.Remoting.MetadataServices.SUDSParserException :
Exception,
System.Runtime.Serialization.Iserializable
8.1.1.123 public class System.Threading.SynchronizationLockException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.124 public class System.Data.SyntaxErrorException :
System.Data.InvalidExpressionException,
System.Runtime.Serialization.Iserializable
8.1.1.125 public class SystemException :
Exception,
System.Runtime.Serialization.Iserializable
8.1.1.126 public class System.Reflection.TargetException :
ApplicationException,
System.Runtime.Serialization.Iserializable
8.1.1.127 public sealed class System.Reflection.TargetInvocationException :
ApplicationException,
System.Runtime.Serialization.Iserializable
8.1.1.128 public sealed class System.Reflection.TargetParameterCountException :
ApplicationException,
System.Runtime.Serialization.Iserializable
8.1.1.129 public sealed class System.Threading.ThreadAbortException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.130 public class System.Windows.Forms.ThreadExceptionDialog :
System.Windows.Forms.Form,
System.ComponentModel.IComponent,
IDisposable,
System.Windows.Forms.UnsafeNativeMethods+IOleControl,
System.Windows.Forms.UnsafeNativeMethods+IOleObject,
System.Windows.Forms.UnsafeNativeMethods+IOleInPlaceObject,
System.Windows.Forms.UnsafeNativeMethods+IOleInPlaceActiveObject,
System.Windows.Forms.UnsafeNativeMethods+IOleWindow,
System.Windows.Forms.UnsafeNativeMethods+IViewObject,
System.Windows.Forms.UnsafeNativeMethods+IViewObject2,
System.Windows.Forms.UnsafeNativeMethods+IPersist,
System.Windows.Forms.UnsafeNativeMethods+IPersistStreamInit,
System.Windows.Forms.UnsafeNativeMethods+IPersistPropertyBag,
System.Windows.Forms.UnsafeNativeMethods+IPersistStorage,
System.Windows.Forms.UnsafeNativeMethods+IQuickActivate,
System.ComponentModel.ISynchronizeInvoke,
System.Windows.Forms.IWin32Window,
System.Windows.Forms.IcontainerControl
8.1.1.131 public class System.Threading.ThreadExceptionEventArgs :
EventArgs
8.1.1.132 public sealed class System.Threading.ThreadExceptionEventHandler :
MulticastDelegate,
ICloneable,
System.Runtime.Serialization.Iserializable
8.1.1.133 public class System.Threading.ThreadInterruptedException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.134 public class System.Threading.ThreadStateException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.135 sealed class System.Threading.ThreadStopException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.136 public class System.ServiceProcess.TimeoutException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.137 public class System.Data.TypedDataSetGeneratorException :
System.Data.DataException,
System.Runtime.Serialization.Iserializable
8.1.1.138 public sealed class TypeInitializationException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.139 public class TypeLoadException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.140 public class TypeUnloadedException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.141 public class UnauthorizedAccessException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.142 public class UnhandledExceptionEventArgs :
EventArgs
8.1.1.143 public sealed class UnhandledExceptionEventHandler :
MulticastDelegate,
ICloneable,
System.Runtime.Serialization.Iserializable
8.1.1.144 public class UriFormatException :
FormatException,
System.Runtime.Serialization.Iserializable
8.1.1.145 public class System.Security.VerificationException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.146 public class System.Data.VersionNotFoundException :
System.Data.DataException,
System.Runtime.Serialization.Iserializable
8.1.1.147 public class System.ComponentModel.WarningException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.148 public class System.Net.WebException :
InvalidOperationException,
System.Runtime.Serialization.Iserializable
8.1.1.149 public enum System.Net.WebExceptionStatus
8.1.1.150 public class System.ComponentModel.Win32Exception :
System.Runtime.InteropServices.ExternalException,
System.Runtime.Serialization.Iserializable
8.1.1.151 public class System.Xml.XmlException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.152 public class System.Xml.Schema.XmlSchemaException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.153 public sealed class System.Security.XmlSyntaxException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.154 public class System.Xml.XPath.XPathException :
SystemException,
System.Runtime.Serialization.Iserializable
8.1.1.155 public class System.Xml.Xsl.XsltCompileException :
System.Xml.Xsl.XsltException,
System.Runtime.Serialization.Iserializable
8.1.1.156 public class System.Xml.Xsl.XsltException :
SystemException,
System.Runtime.Serialization.ISerializable












































































详细设计说明

1、 详细设计的目的与意义。

一、详细设计是针对需求,在代码实现以前的工做,它既是对代码实现工做的指导,又是对需求的进一步从软件角度的深化。

二、之前咱们几乎没有设计,或者说有,也远远不够,这部分工做至关于建筑业的图纸设计。

三、搞好设计工做是研发工做重要的一环,在咱们本身的研发过程当中是必须的一环。

四、设计大部分靠的是经验,过去的项目经验,过去的积累对于设计工做的意义很是重大,注重平常项目经验的积累,是提升设计水平必经之路。

2、 针对咱们本身的研发过程,设计都有哪些内容。

每一个组织都有本身的设计要求,咱们也不例外。设计主要有如下几个部分组成:

一、 体系设计

A、体系设计也能够叫作架构设计,软件越大,这部分重要性越明显。主要部分主要是各子系统如何组织以及如何协调工做。这种设计在目前的状况下(固然之后还要继续发展)以分层的体系是较为合适:

l 系统如何分层,分红三层(表现层、业务逻辑层、数据持久层)仍是更多层。

l 各个层之间的如何通信。

l 可借鉴的一些设计模式,如用得最多的MVC模式等。

B、子系统(或模块)设计,解决有系统要划分为哪些子系统,每一个子系统又有哪些小功能模块,这些子系统(小模块)之间如何协做等。这部分能够认为是传统的设计。

C、横向(子系统)与纵向(分层)的关系。至关于软件的每一个模块都处在哪一个子系统,都在哪一层中。

二、 功能模块设计

对于每一个子系统的全部功能模块,分重点、分缓急地设计其所包含的包、类、接口等等,以及其内部与外部的接合部分设计等等,应尽可能细化,以方便实现。

三、 数据库及算法设计

此部份内容略。

四、 界面设计

对于c/s与b/s界面设计在实际操做过程当中是不大相同的。b/s界面设计大部分归于美工效果,而c/s设计大部分在于设计及程序员。

界面设计要考虑主界面或首页面、子页面、弹出窗体、每一个页面的每一个元素的大小、位置、形状、美学设计等等。从操做角度来看应考虑如何操做最方便,从美学角度来看应考虑如何设计最美观,从业务角度来看应考虑业务具体要求。等等。

五、 打包设计

也是很是重要的部分,c/s能够打包,b/s也一样能够打包,.net程序能够打包,java程序一样也能够打包。程序安装实际是给用户的第一感受,同时也是实施的重要步骤,打包的好坏直接关系到实施的难度、技术要求等等。

这部分主要有安装步骤、注册表、安装目录、程序组、快捷方式、其它相关要求等等。

3、 与其它过程的关系

一、设计的主要依据:

《产品规格说明书》、相关数据库等各个方面的设计文档、交流与沟通的结果。

二、做为代码实现的主要依据。

4、 设计人员与程序员的工做关系

一、设计人员负责解释设计思路、设计细节等,并指导程序员的代码实现,对于难度较大的代码部分应由设计人员编码实现。

二、测试并检验程序员实现是否符合设计,并提出修改意见等。

5、 详细设计的文档要求。

一、详细设计说明书

二、UML文档

三、所创建的项目(project )文档,并交给程序员进行实现。java