系統出錯信息設計

系統出錯信息設計

文件標識:
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