程序集异常问题

为什么要进行异常处理

程序因为各种原因出现问题导致的结果是程序直接崩溃,结果和开发过程出现的问题结果大不一样。因此需要使用异常的处理来防止软件系统崩溃

程序中的安全隐患

  1. 网络故障导致数据库连接问题

  2. 用户的非法操作(数据验证失败)

  3. 数据处理中的任何意外(例如:查询超时,资源文件丢失等)

  4. ……

了解异常类Exception

.NET Framework中的异常的设计结构

常见的异常类

与参数有关的异常

此类异常类均派生自SystemException,用于方法成员传递参数时发生的异常

  1. ArgumentException:用于处理参数无效的异常

  2. FormatException:用于处理参数格式错误的异常

与数组有关的异常

此类异常类均派生自SystemException

  1. IndexOutOfRangeException:用于处理索引超出数组长度所引发的异常

  2. ArrayTypeMismatchException:用于处理数组中存储数据类型不正确的元素所引发的异常

与IO有关的异常

  1. IOException:用于处理进行文件输入输出操作时所引发的异常

与内存溢出有关的异常

OverFlowException:用于处理程序逻辑错误造成的死循环异常

与算术有关的异常

ArithmeticException:用于处理与算术有关的异常,比如0作为除数

与数据库操作有关的异常

  1. DbException:用于处理所有数据源操作异常类的基类

  2. SqlException:用于处理针对SQL数据源的异常,比如数据库连接错误

处理异常的常用方法

异常处理的形式

  1. 即时处理:发现异常后随时处理并恢复程序

  2. 抛出异常:捕获异常后,重新封装异常信息或直接抛给调用者

编写异常处理的原则

在任何可能会发生异常的地方进行添加异常处理的方法

异常对象提供的重要信息

属性名称说明
Source此属性表示导致异常发生的应用程序或对象的名称
Message提供引发异常的详细描述信息
StackTrace提供在堆栈上所调用方法的详细信息,并首先显示最近调用的方法

使用Try-catch捕获和处理

  1. Try中放可能会出现异常的代码

  2. catch中表示如果try中的代码出现了异常则会直接进入到catch中执行

  3. 无论是否try中的代码会不会发生异常,最终都会执行finally中的代码

  4. finally不是必须的模块

异常传递与自定义方法

异常处理和日常工作一样

  1. “底层方法”将第一次捕获的异常传递给上级调用者进一步详细处理

  2. “中层调用者”可以用多路捕获异常并封装详细异常信息

  3. “顶层调用者”即在用户界面中继续处理异常

相当于:

顶层调用者是客户-出现异常只需要告诉客户可能操作未成功的人性化原因描述

中层调用者-程序的开发人员,在开发程序时对于可能发生的异常进行初步处理

底层方法-维护人员,将异常的详细信息汇报,并进行异常处理

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值