Visual Basic .NET 中的异常处理简介(4)
2008-04-09 04:43:13来源:互联网 阅读 ()
总结
到现在为止,您应该清楚地了解了结构化异常处理和非结构化异常处理之间的区别,以及 Visual Basic .NET 中结构化异常处理功能的优势。通常情况下,结构化异常处理即可满足您的需求,但在少数情况下仍然可能需要使用非结构化异常处理。
在确保异常得到处理的同时,不要过多地列举它们,否则会导致性能下降。Try 结构是很有条理的,易于编写且易于阅读,它能生成有效的代码。编写处理一个或多个可能异常的代码时,都应该使用该结构。此方法极其有效,您甚至愿意在正常情况下使用异常来控制逻辑流程。例如,替代 If 或 Select 语句。处理异常是很有效的,但应该到真正发生异常时使用。
下表列出了预定义的异常类及其起因和派生类。
表 1
ArgumentOutOfRangeException
ComponentModel.InvalidEnum
ArgumentException
DuplicateWaitObjectException
ArithmeticException 在算法、强制类型转换或转换操作上发生错误 DivideByZeroExceptionNotFiniteNumberException
OverflowException
ArrayTypeMismatchException 尝试在数组中存储错误类型的元素 无 BadImageFormatException DLL 或可执行程序的文件映像无效 无 CannotUnloadAppDomainException 尝试卸载应用程序域失败 无 ComponentModel.Design.Serialization.CodeDomSerializerException 产生序列化错误的行号信息 无 ComponentModel.LicenseException 无法为组件授予许可证 无 ComponentModel.WarningException 异常被作为警告而不是错误处理 无 Configuration.ConfigurationException 配置设置中发生错误 无 Configuration.Install.InstallException 在安装过程的提交、回滚或卸载阶段发生错误 无 ContextMarshalException 尝试通过上下文范围封送对象失败 无 Data.DataException 使用 ADO.NET 组件时产生错误 Data.ConstraintException
Data.DeletedRowInaccessibleException
Data.DuplicateNameException
Data.InRowChangingEventException
Data.InvalidConstraintException
Data.InvalidExpressionException
Data.MissingPrimaryKeyException
Data.NoNullAlllowedException
Data.ReadOnlyException
Data.RowNotInTableException
Data.StringTypingException
Data.TypedDataSetGeneratorException
Data.VersionNotFoundException
Data.DBConcurrencyException 在升级操作中,DataAdapter 确定受影响的行数等于零 无 Data.SqlClient.SqlException SQL Server 返回警告或错误 无 Data.SqlTypes.SqlTypeException Data.SqlTypes 的异常基类 Data.SqlTypes.SqlNullValueExceptionData.SqlTypes.SqlTruncateException
Drawing.Printing.InvalidPrinterException 使用无效的打印机设置尝试访问打印机 无 EnterpriseServices.
RegistrationException 检测到注册错误 无 EnterpriseServices.Serviced
ComponentException 在运行的组件上检测到错误 无 ExecutionEngineException 在公共语言运行时的执行引擎上存在内部错误 无 FormatException 参数的格式不符合调用方法的参数规定 Net.CookieException
Reflection.CustomAttribute
FormatException
UriFormatException
IndexOutofRangeException 尝试访问其索引在数组范围之外的数组元素 无 InvalidCastException 无效的强制类型转换或显式转换 无 InvalidOperationException 方法调用对于对象的当前状态无效 Net.ProtocolViolationExceptionNet.WebException
ObjectDisposedException
InvalidProgramException 程序包含无效的 Microsoft 中间语言或元数据 无 IO.InternalBufferOverflowException 内部缓冲区溢出 无 IO.IOException 发生 I/O 错误 IO.DirectoryNotFoundExceptionIO.EndOfStreamException
IO.FileLoadException
IO.FileNotFoundException
IO.PathTooLongException
Management.ManagementException 管理错误 无 MemberAccessException 尝试访问类成员失败 FieldAccessExceptionMethodAccessException
MissingFieldException
MissingMemberException
MissingMethodException
MulticastNotSupportedException 尝试组合两个无法组合的代理类型实例,两者的操作数都为非空引用 无 NotImplementedException 未执行要求的方法或操作 无 NotSupportedException 不支持所调用的方法,或者尝试在不支持所调用函数的流中进行读取、查找或写入 PlatformNotSupportedException NullReferenceException 尝试取消引用空对象引用 无 OutOfMemoryException 内存不足以完成执行程序 无 RankException 将具有错误维数的数组传递给方法 无 Reflection.AmbiguousMatchException 绑定方法时导致多个方法符合绑定条件 无 Reflection.ReflectionType
LoadException Module.GetTypes 方法导致模块中的一个或多个类无法加载 无 Resources.MissingManifest
ResourceException 主要程序集不包含非特定语言的资源,但它们又是必需的,因为缺少合适的辅助程序集 无 Runtime.InteropServices.
ExternalException 所有 COM 互操作异常和结构化异常处理异常的基本异常类型 ComponentModel.Design.
CheckoutException
ComponentModel.Win32Exception
Data.OleDb.OleDbException
Messaging.MessageQueueException
Runtime.InteropServices.COMException
Runtime.InteropServices.SEHException
Web.HttpException
Runtime.InteropServices.InvalidComObjectException 使用了无效的 COM 对象 无 Runtime.InteropServices.
InvalidOleVariantTypeException 封送器遇到无法封送到管理代码的变体类型参数 无 Runtime.InteropServices.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:VB.NET注册表编程
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
