在本章10_IEC_T1S1_OOPs_Session_14.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在本章10_IEC_T1S1_OOPs_Session_14

在本章,你将学到: 处理异常 实现用户自定义异常 实现线程 定义线程的生命周期 在异常处理中,程序被分成代码块。 一个显示可能产生错误的块包含一个或者多个异常处理程序。 异常处理遵守一个控制结构和一个处理系统级和程序级错误的统一方式。 这些异常处理块可以使用下面的关键字实现: try catch finally 让我们了解这些关键字的详情。 try 块: try块监视可能抛出异常的语句。以下是 try 块的语法: try { //statements that may cause an exception } try块管理包含在它内部的语句,定义与它相关的异常处理程序的范围。 try块必须至少有一个catch块。 catch 块: catch块的语句使用一个异常类的对象作为参数,它引用一个产生的异常。 你可以通过提供一个或更多catch处理程序将一个异常处理程序与try块相联系,紧挨着try块之后: try { //statements that may cause an exception } catch (…) { //error handling code } finally 块: finally块被用于执行一个给定的语句集,不论异常是否被抛出。 try { //statements that may cause an exception } catch (…) { //error handling code } finally { //statements to be executed } 问题描述: David正在为一个项目工作,其中他正在计算一个整型数组中的总和。David需要处理当他使用数组时发生的异常。如果David在执行程序的时候遇到了任何异常情况,程序需要显示一个异常消息。 帮助David处理异常。 解决方案: 为了创建基于控制台的程序,David需要完成下面的任务: 创建基于控制台的程序。 编译和执行程序。 在C#中,你可以创建你自己的异常类。这种类型的异常被称为用户自定义异常。 在C#中Exception必须是所有异常的基类。 用户定义异常类必须遵守要么异常类的层次或一个标准的继承类。 用户自定义异常类派生自ApplicationException类。 为了实现用户自定义异常,你需要: 生成你自己的异常:你可以使用throw语句来产生你自己的异常。 抛出对象:你可以抛出一个对象,如果对象是直接或间接派生自System.Exception。你可以使用在catch块中的throw语句来抛出当前对象,如下面的代码所示: catch(Exception caught) { . . . throw caught } 线程被定义为程序执行的路径。 使用线程,你可以定义为程序中唯一的控制流。 线程被用来运行完成大型和复杂计算的程序。 使用一个线程执行的进程被称为单线程进程,这里进程是一个程序的运行实例。 单线程程序一次仅可以完成一个任务。在另一个任务开始之前,你必须等待一个任务完成。 下图显示了单线程进程。 为了一次执行多于一个任务,你可以在程序中创建多个线程。 创建两个或更多线程的进程被称为多线程进程。 在C#中,你通过创建一个Thread类型的对象创建一个线程,假设它的构造函数有ThreadStart 的引用,并且调用新线程的Start()方法。 新线程开始异步执行线程的方法调用。 在Thread类中有各种可用的方法。使用这些方法,你可以控制线程的执行。这些方法中的一些是: Start():启动一个线程 Sleep():使线程暂停一段时间 Abort():中止线程 Suspend():挂起线程。如果线程已经挂起的话则没有影响 Resume():继续挂起的线程 你可以通过继承Thread类创建线程。 继承Thread的类调用Start()方法来开始一个子线程执行。下面是创建线程的示例: ThreadStart ChildRef = new ThreadStart(ChildThreadCall); Thread ChildThread = new Thread(ChildRef); ChildThread.Start(); 当System.Threading.Thread类的对象被创建的时候,线程的生命周期开始。线程的生命周期结束于任务的执行。 在线程的生命周期中有各种状态。这些状态是: 未启动状态 运行态 未运行态 死亡态 让我们在以下图形的帮助下了解线程的生命周期。 当一个Thread类的实例被创建的时候,线程进入未启动状态。 新线程是Thread类的一个空对象,没有系统资源例如内存被分配给它。 线程一直处在未启动状态直

文档评论(0)

mv2323 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档