文档视界 最新最全的文档下载
当前位置:文档视界 › 实验四 异常处理

实验四 异常处理

实验四   异常处理
实验四   异常处理

实验四异常处理

一、实验目的

(1)学会利用Try-catch-finally语句来捕获和处理异常;

(2)掌握自定义异常类的方法。

二、实验要求

通过编程理解系统异常处理的机制和创建自定义异常的方法。

三、实验内容

1. Java的异常处理

(1) 编写使用try…catch 语句处理异常的程序文件Demo4_1.java,

源代码如下:

public class Demo4_1{

public static void main(String[] arg3) {

System.out.println("这是一个异常处理的例子\n");

try {

int i=10;

i /=0;

}

catch (ArithmeticException e) {

System.out.println("异常是:"+e.getMessage());

}

finally {

System.out.println("finally 语句被执行");

}

}

}

编译并运行程序。

[思考]将catch 语句中声明的异常类改为Exception,能否捕获到异常,为什么?

(注意:如果在catch 语句中声明的异常类是Exception,catch 语句也能正确地捕获,这是因为Exception是ArithmeticException的父类。如果不能确定会发生哪种情况的异常,那么最好指定catch的参数为Exception,即说明异常的类型为Exception。)

(2) 源文件是Demo4_2.java。要捕捉的异常是除数为零和数组下标越界。通过修改a和c[]下标值体验程序。

public class Demo4_2

{ public static void main (String[] args)

{int a, b;

int c[]={1,2,3};

try{ a=10;

b=100/a;

System.out.println ("当前a值:"+a);

c[2]=200;

System.out.println ("当前数组长:"+c.length);

}catch(ArithmeticException e)

{ System.out.println ("除零错误:"+e); }

catch(ArrayIndexOutOfBoundsException e)

{ System.out.println ("数组下标越界:"+e); }

finally

{ System.out.println ("我是finally");}

System.out.println ("我能被正常执行到");

}

}

【思考】

①先运行上面没有错误程序,观察运行结果。

②按下条件分别修改数据,编译后运行,观察输出结果,分析在try…catch块里那些语句没有被执行,为什么? 块外那些语句可被执行到,为什么?

修改a=0,保持c[2]=200;

保持a=10,修改c[3]=200,

修改a=0,修改c[2]=200;

③再添加一个catch{Exception e}{ },位置在最前面,观察编译信息,说明什么?

(3)源程序如下:

public class Test {

public static void main(String[] args) {

try {

System.out.println(1 / 0);

} catch (Exception e) {

System.out.println(e.toString());

System.out.println("--------------------");

System.out.println(e.getMessage());

System.out.println("--------------------");

e.printStackTrace();

}

}

}

【思考】

Excetpion类的toString,getMessage,printStackTrace三种方法输出的信息有何不同?

2、自定义异常类

(1)注意throw、throws的使用。源文件是Demo4_3.java。

class MyException extends Exception //自定义异常类

{public String toString()

{ return "除数等于零";

}

}

class DIV{

double DIV(double x,double y) throws MyException

{if(y==0) throw new MyException();

else return (x/y);

}

}

public class Demo4_3

{ public static void main (String[] args)

{ double z;

DIV div=new DIV();

try{ z=div.DIV(100,0);

System.out.println ("当前z值:"+z);

}catch(MyException e)

{ System.out.println (e.toString());

}

}

}

【思考】

①修改try...catch中语句z=div.DIV(100,0)入口参数,观察运行结果。

z=div.DIV(100,10);

z=div.DIV(100,0);

②将try...catch语句注释掉,观察编译信息。

③上面条件保持,在main函数后面加上thorws MyException再重新编译,能否通过?然后运行观察结果,得到什么结论?

(2)编写程序Demo4_4.java,包含自定义异常,当输入数值为13和4时抛出该异常。源代码如下:

class Ex2 extends Exception{

Ex2 (String msg) {

super(msg);

}

}

class Demo4_4{

private int x;

void setX(int x) {

this.x=x;

}

void f1() throws Ex2{

if(x==13)

throw new Ex2(“I don’t like 13!”);

else if(x==4)

throw new Ex2(“I don’t like 4!”);

else

system .out.println(100/x);

}

public static void main(Sstring args[ ]) {

Demo4_4 a=new Demo4_4();

try {

a.steX(5);

//a.setX(13);

//a.setX(4);

//a.setX(0);

a.f1();

}

catch(Ex e) {

Sytem.out.println(“get message:”+e.getMessage());

}

}

【思考】编译并运行,分别取消注释上面程序中被注释的语句。当释放a.setX(13)语句后,查看运行结果,当释放a.setX(4)语句后,查看运行结果。

四、实验练习题

编写Java程序,创建数组后,对数组访问时发生的数组越界.实验使用try-catch语句处理该异常。运行结果如图所示。

JAVA 异常处理实验报告

实验三异常处理 [实验目的] 1.掌握异常处理方法及熟悉常见异常的捕获方法。 [实验内容] 1.练习捕获异常、声明异常、抛出异常的方法、熟悉try和catch 子句的使用。 [实验步骤与要求] 第1题异常处理 要求声明定义两个Exception的异常子类:NoLowerLetter类和NoDigit类。再声明一个People类,该类中的void printLetter(char c)方法抛出NoLowerLetter异常类对象,void PrintDigit(char c)方法抛出NoDigit异常类对象。 [作业提交] 将代码贴在下面: class NoLowerLetter extends Exception{ String message; NoLowerLetter(char c){ message=c+"不是正数"; } public String getMessage(){ return message; } } class NoDigit extends Exception{ String message; NoDigit(char c){ message=c+"不是偶数"; }

public String getMessage(){ return message; } } class People{ public void printLetter(char c) throws NoLowerLetter{ if(c<0){ NoLowerLetter ex=new NoLowerLetter(c); throw(ex); } double number=Math.sqrt(c); System.out.println(c+"的平方根:"+number); } public void PrintDigit(char c) throws NoDigit{ if(c%2!=0){ NoDigit ex=new NoDigit(c); throw(ex); } double number=Math.sqrt(c); System.out.println(c+"的平方根:"+number); } } public class bianma{ public static void main(String args[]){ People p=new People(); try{ p.printLetter('Q'); p.printLetter(' '); } catch( NoLowerLetter e){ System.out.println(e.getMessage()); } try{ p.PrintDigit('d'); p.PrintDigit('a'); } catch( NoDigit e){ System.out.println(e.getMessage()); } } } 将结果运行截屏贴在下面:

实验五异常处理

实验五异常处理 一、实验目的 1.熟悉异常的抛出与捕获的含义; 2.掌握异常捕获与处理的方法; 3.能自定义异常。 二、实验内容 1. 验证书上例子5,将运行结果保存至实验报告中,并简述Java语言处理异常的过程。 2. 现在多数学校的成绩管理都由计算机进行管理,这就需要有相应的应用程序。编写成绩管理应用程序,其中有成绩录入模块,成绩录入过程中,难免出现录入数据的类型出现错误,或录入的成绩不在合理的范围。在成绩录入过程中,若出现上述错误,程序应该如何处理。 程序框架如下,将代码补充完整,并调试出结果,并将运行结果保存至实验报告中:(1)首先定义两个异常类 负数异常.java文件源代码: class负分异常extends Exception //当录入了负分时。此处应用了自定义异常 { 负分异常(int i){ .println("分数为负数"); } } 高分异常.java文件源代码: class高分异常extends Exception //当录入分超过100时。应用了自定义异常 { 高分异常(int i ){ .println("分数过高"); } } 主类源文件代码: import .JOptionPane; public class ExceptionDemo { static final int number=2; int score[]=new int[number]; public void检查分数(int分数) throws负分异常,高分异常 //下面方法中判断如果录入的成绩不合理,则抛出异常,但本方法并不处理异常,仅声明了异常 { i f(分数 >100) throw new高分异常(分数); //通过throw,人工抛出异常 i f(分数 <0) throw new负分异常(分数); } public void录入成绩()

《面向对象程序设计》第10章在线测试

《面向对象程序设计》第10章在线测试 A B C D 、关于异常对象的说法正确的是( A B 对象 C、以引用方式传递异常对象时,抛出的是局部静态对象 D 对象 A块相当于一个以类型为单一参数的函数 B 以捕捉 C块中可以声明变量,该变量可以在块外使用 D 数值 A B C D 、为保证程序中的全局变量不与开发商提供的全局变量重名,可以采取的措施是( A B C D

C、C++程序绝对不能出现错误 D、异常处理使C++程序在出现错误的情况下仍能继续运行 2、下面说法正确的是() A、C++程序中可以存在多个名字空间 B、不同的名字空间中不能出现名字相同的变量 C、名字空间能避免名字冲突 D、C++程序中也可以不定义名字空间 3、关于异常处理的说法正确的是() A、将异常的检测与处理分离 B、异常就是错误 C、异常由函数调用引起 D、在上层调用函数中使用try检测函数调用是否引发异常 4、下面与异常处理相关的关键字有() A、Throw B、throw C、try D、Try 5、下面的说法正确的是() A、引发异常用关键字throw B、在被调用函数中检测到异常条件用throw都可以引发异常 C、被调用函数只有在try块中用throw才可以引发异常 D、检测到的异常由catch捕获并处理 第三题、判断题(每题1分,5道题共5分) 1、抛出异常的模块并不负责异常的处理,该异常的处理可以程序中的任何位置。

正确错误、异常处理器根据抛出异常模块的报告来处理异常。 正确错误、异常信号传递方式有三种:传值方式、引用方式和指针方式。 正确错误表示函数将会抛出所有类型的异常 正确错误处理程序的出现次序无关紧要。 正确错误

第10章 异常处理

第10章异常处理 10.1 异常处理概述 1、异常 异常是程序运行时产生的错误,由大量例外的,非正常情况下产生的。这些错误有的是致命的,导致程序无法继续运行,而有的错误应该是可以处理的,如用户输入错误、不能打开文件、数组下标越界等。 程序在正常的情况下完成正确的功能,这是最基本的要求,但这还远远不够。在非正常的情况下,程序也应该能产生适当的反应,并继续运行下去,而不是直接终止程序,甚至产生死机等灾难性的后果。好的程序一个非常重要的特点就是鲁棒性,即程序对环境的适应能力,在环境条件出现异常情况下(如用户输入错误,文件被移动、被破坏等),也应有正确合理的表现。 因此我们在程序设计时,应该发现一些会导致运行错误的情形,并进行相应的错误处理,使程序能正常运行下去,而不产生灾难性后果,并导致程序终止。 2、异常示例 查看下面这个程序:输出若干组整数相除的结果。这个程序在编译时没有错误,但在运行时却会产生运行异常。 例10-1 异常示例 class Test{ static void f (int a, int b){ System.out.println(a+"/"+b+"="+a/b); } public static void main( String args[ ] ){ f(10, 3); f(5, 0); f(3, 2); } } 运行结果: 10/3=3 Exception in thread "main" https://www.docsj.com/doc/994191125.html,ng.ArithmeticException: / by zero 说明:程序运行时,在执行方法f中的表达式a/b的运算时,若除数b为0时,运算将无法进行,产生运行时异常。我们在main函数中三次调用函数f,其中第二个调用会导致除数为0,运行中产生了异常,程序无法继续运行,系统会非正常的终止程序。当然在这个程序中,除数为0的异常是应该处理,也是可以处理的异常,程序员应该对除数为0的情况给出处理,并使程序能继续运行下去,而不是非正常的终止程序。 3、传统的异常处理方法 传统的异常处理方法是在程序中进行异常条件判断(用if语句),并根据判断结果进行

实验 异常处理

实验报告六 一【实验目的】 1.掌握异常的基本概念。 2.理解异常处理机制。 3.掌握创建自定义异常的方法。 二【实验内容】 Java提供了异常处理机制,当程序中发生异常时,程序产生一个异常事件,相应地生成异常对象。系统从生成对象的代码开始,沿方法的调用栈逐层回溯,寻找相应的处理代码,并把异常对象交给该方法处理。 实验1 录入如下源程序: 1、 public class Ex7_1 { public static void main(String[] args) { String output[] ={ "The ","quick ","brown ","fox ","jumps ", "over ","the ","lazy ","dog."}; int i =0; while(i<12){ System.out.print(output[i++]); } System.out.println("haha..."); } } 2、保存程序Ex7_1.java,编译运行程序,观察并分析程序的运行结果。The quick brown fox jumps

over the lazy dog.Exception in thread "main" https://www.docsj.com/doc/994191125.html,ng .ArrayIndexOutOfBoundsException at Ex7_1.main(Ex7_1.java:9),可以看出,在第9行出现了数组下标越界的异常,导致了程序的中止,而程序的最后一条语句“System.out.println("haha...");”没有执行。 运行结果: 3、我们修改程序,加入异常处理,当程序发生异常时,经过异常处理后,程序还可以继续执行。 异常处理代码格式: try{ //可能有问题的代码 } catch(ArrayIndexOutOfBoundsException e) { //处理代码 break; } catch(Exception e1) { /// } catch(…..){ } 修改代码在可能出错的地方加入: try{ // } catch(ArrayIndexOutOfBoundsException e) {

材料科学基础第十章答案

材料科学基础第十章答案

第十章答案 10-1名词解释:烧结烧结温度泰曼温度液相烧结固相烧结初次再结晶晶粒长大二次再结晶 (1)烧结:粉末或压坯在低于主要组分熔点的温度下的热处理,目的在于通过颗粒间的冶金结合以提高其强度。 (2)烧结温度:坯体在高温作用下,发生一系列物理化学反应,最后显气孔率接近于零,达到致密程度最大值时,工艺上称此种状态为"烧结",达到烧结时相应的温度,称为"烧结温度"。 (3)泰曼温度:固体晶格开始明显流动的温度,一般在固体熔点(绝对温度)的2/3处的温度。在煅烧时,固体粒子在塔曼温度之前主要是离子或分子沿晶体表面迁移,在晶格内部空间扩散(容积扩散)和再结晶。而在塔曼温度以上,主要为烧结,结晶黏结长大。 (4)液相烧结:烧结温度高于被烧结体中熔点低的组分从而有液相出现的烧结。 (5)固相烧结:在固态状态下进行的烧结。 (6)初次再结晶:初次再结晶是在已发生塑性变形的基质中出现新生的无应变晶粒的成核和长大过程。 (7)晶粒长大:是指多晶体材料在高温保温过程中系统平均晶粒尺寸逐步上升的现象.

(8)二次再结晶:再结晶结束后正常长大被抑制而发生的少数晶粒异常长大的现象。 10-2烧结推动力是什么?它可凭哪些方式推动物质的迁移,各适用于何种烧结机理? 解:推动力有:(1)粉状物料的表面能与多晶烧结体的晶界能的差值, 烧结推动力与相变和化学反应的能量相比很小,因而不能自发进行,必须加热!! (2)颗粒堆积后,有很多细小气孔弯曲表面由于表面张力而产生压力差, (3)表面能与颗粒之间形成的毛细管力。 传质方式:(1)扩散(表面扩散、界面扩散、体积扩散);(2)蒸发与凝聚;(3)溶解与沉淀;(4)黏滞流动和塑性流动等,一般烧结过程中各不同阶段有不同的传质机理,即烧结过程中往往有几种传质机理在起作用。 10-3下列过程中,哪一个能使烧结体强度增大,而不产生坯体宏观上的收缩?试说明理由。(1)蒸发-冷凝;(2)体积扩散;(3)粘性流动;(4)晶界扩散;(5)表面扩散;(6)溶解-沉淀 解:蒸发-凝聚机理(凝聚速率=颈部体积增加)

第十章(神经症)

第十章神经症与癔症 一、目的与要求 1.掌握神经症的概念及分类。 2.掌握各种神经症的临床特征、诊断及鉴别诊断。 3.掌握各种神经症的治疗。 4.掌握癔症的临床表现、诊断及鉴别诊断。 5.了解神经症的病因及发病机制。 6.了解神经症的流行病学资料。 7.了解神经症的病程和预后。 8.神经症是一种常见疾病。多数神经症患者首诊于综合科,而有些综合科医生对于此类疾病的识别和处理能力有限。因此,通过本章的学习,要求学生在今后的临床工作中能识别神经症,并能提出合理的治疗建议,以减少误诊和医疗资源的浪费。 二、各部分应掌握和了解的主要内容 第一节神经症的病因和发病机制 1.了解国内外神经症的流行病学特征,包括一些具体类型的流行病学特征。 2.了解神经症的病因。 3.了解神经症在国内外诊断分类系统中的大体变迁。 4.简要了解几种有代表性的神经症理论(精神分析的神经症理论、行为主义的神经症理论、认知心理学的神经症理论,人本主义心理学的神经症理论和森田的神经质理论)。 第二节神经症的临床表现 1.掌握神经症病人常出现的几大类症状群的特征,包括脑功能失调症状群,情绪改变症状群,强迫症状群,疑病症状群,躯体不适症状群及睡眠障碍症状群。 2.掌握神经症的共同特征,包括患者的生物-心理-社会学基础、症状范围

及其组合方式等等,认识到神经症是一组精神障碍的总称,尚未发现有器质性病变,患者有相当的自知力,社会功能相对完好。 第三节神经症的诊断与治疗 1.掌握神经症的诊断原则与鉴别诊断。 2.掌握神经症的治疗原则。 第四节神经症的常见类型 1.掌握焦虑症的临床表现:以广泛和持续性焦虑或反复发作的惊恐不安为主要特征,常伴有自主神经紊乱、肌肉紧张与运动性不安,临床上分为广泛性焦虑和惊恐障碍两种主要形式。掌握焦虑症的诊断、鉴别诊断及治疗方法。需要注意的是,焦虑症的焦虑症状是原发的。 2.掌握强迫症的临床表现:其特点是有意识的自我强迫与反强迫同时存在,二者的尖锐冲突使患者焦虑和痛苦;病程迁延的患者可表现为以仪式化动作为主,而精神痛苦减轻,但此时社会功能明显受损。掌握强迫症的诊断、鉴别诊断及治疗方法。应了解到慢性强迫症患者由于出现了对病态体验的适应行为方式,此时病人的求治要求可能会变得并不十分迫切。 3.掌握恐惧症的临床特点:对某种客观事物或情境产生异乎寻常的恐惧和紧张,自知这种反应是过分或不合理的,但难以控制,以致极力回避该事物或情境。掌握恐惧症的诊断、鉴别诊断及治疗方法。了解恐惧对象的通常分类。了解恐惧发作时可以伴有抑郁、强迫、人格解体等症状。 4.掌握躯体形式障碍的主要特征:病人反复陈述躯体症状,不断要求给予医学检查,无视反复检查的阴性结果,不相信医生的无躯体疾病的再三保证。掌握躯体形式障碍的诊断、鉴别诊断及治疗方法。了解躯体形式障碍的类型,其中疑病障碍(症)的诊断在我国应用较多。 5.掌握神经衰弱的主要特征:表现为脑功能失调症状、常伴有情绪症状及心理生理症状,其核心症状是精神疲劳。掌握神经衰弱的诊断、鉴别诊断及治疗方法。

实验八 异常处理

实验八异常处理 【开发语言及实现平台或实验环境】 Windows2000 或XP,JDK1.6与Jcreator4.0 【实验目的】 了解Java 中异常处理(exception)的作用。 掌握异常处理的设计方法。 【实验要求】 理解系统异常处理的机制和创建自定义异常的方法。 【实验步骤】 一.了解异常处理机制 1.错误与异常 在程序执行期间,会有许多意外的事件发生。例如,程序申请内存时没有申请到、对象还未创建就被使用、死循环等,称为运行错误。根据错误的性质将运行错误分为错误与异常两种类型。 (1)错误 程序进入了死循环或内存溢出,这类现象称为错误或致命性错误。错误只能在编程阶段解决,运行时程序本身无法解决,只能依靠其它程序干预,否则会一直处于一种不正常的状态。 (2)异常 运算时除数为0,或操作数超出数据范围,打开一个文件时发现文件不存在,网络连接中断等等,这类运行错误现象称为异常。对于异常情况,可在源程序中加入异常处理代码,当程序出现异常时,由异常处理代码调整程序运行流程,使程序仍可正常运行直到正常结束。 由于异常是可以检测和处理的,所以产生了相应的异常处理机制。而错误处理一般由系统承担。 对于一个应用软件,异常处理机制是不可缺少的。程序员必须在程序中考虑每一个可能发生的异常情况并进行处理,以保证程序在任何情况下都能正常运行。事实证明,一个仔细设计了异常处理的程序,可以长时间的可靠运行,而不容易发生致命的错误,如程序被迫关闭、甚至系统终止等等。所以学会进行异常情况处理对于想编写功能完善且具有实用价值的程序员来说是必不可少的。 2.异常发生的原因 (1)Java 虚拟机检测到了非正常的执行状态,这些状态可能是由以下几种情况引起的:·表达式的计算违反了Java 语言的语义,例如整数被0 除。 ·在载入或链接Java 程序时出错。 ·超出了某些资源限制,例如使用了太多的内存。 (2)Java 程序代码中的throw 语句被执行。 (3)异步异常发生。异步异常的原因可能有: ·Thread 的stop 方法被调用。 ·Java 虚拟机内部错误发生。 3.异常处理机制 发生异常后,怎么处理异常呢?Java 提供了异常处理机制来处理异常。分为两个步骤:(1)抛出异常

实验5 异常处理

实验五:java异常处理 实验目的: 1.了解Java异常处理机制的优点 2.了解Java异常的种类 3.掌握异常的捕获与处理 4.掌握异常的抛出 5.熟悉用户自定义异常 6.了解异常处理原则 实验步骤: 一.异常捕获和处理的练习 1. 下面源代码要捕捉的异常是除数为零和数组下标越界。通过修改a和c[]下标值体验程序。 2. 源代码如下: 3. 编写并完善上述代码,编译运行代码,查看程序执行结果。 ●按下条件分别修改数据,编译后运行,观察输出结果,分析在try…catch块里哪些语句没有被执行,为什么?块外哪些语句可被执行到,为什么? (1) 修改a=0,保持c[2]=200; (2) 保持a=10,修改c[3]=200; (3) 修改a=0,修改c[3]=200。

二.自定义异常的定义和使用的练习 1. 设计两个数求商的程序,并设定一个异常类,判断两数相除时,除数是否为零,当除数为零时将抛给自定义异常类,并输出除数为零。 2. 部分源代码如下: 3. 分析上述代码,将division方法体中的代码补充完整,判断输入的除数是否为0。如果为0,要抛出Di visorIsNotZeroException异常;如果不为0,则计算这个数的商。并按要求创建自定义异常类DivisorIsNotZ eroException。在main方法中已经给出如何输入数据和调用所写方法。 4. 代码完善后,编译运行代码,输入下表数据进行验证,如果抛出异常填“Y”,否则填“N”。 表6-2-1 测试数据 ●分析自定义异常是如何创建的?

import java.util.Scanner; class DivisorIsNotZeroException extends Exception { public DivisorIsNotZeroException(String message) { super(message); } } public class MyExceptionTest { public static double division(double dividend, double divisor) throws DivisorIsNotZeroException { Double d = new Double(divisor); if (0 == https://www.docsj.com/doc/994191125.html,pareTo(0.0)) { throw new DivisorIsNotZeroException("除数为0"); } else { return (dividend / divisor); } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入被除数:"); double dividend = sc.nextDouble(); System.out.println("请输入除数:"); double divisor = sc.nextDouble(); try { double result = division(dividend, divisor); System.out.println("计算的商= " + result); } catch(DivisorIsNotZeroException e) { e.printStackTrace(); System.out.println(e.getMessage()); } } }

第12章 异常处理 习题

第12章异常处理 一.单项选择题 1.程序中的错误可以分为以下三类,除了【】。 A) 逻辑错误B) 运行错误C) 自定义错误D) 语法错误2.程序运行期间发生的错误称为【】。 A) 版本B) 断点C) 异常D) 属性 3.在C#程序中,可以使用try…catch机制来处理程序出现的【】错误。 A) 语法B) 拼写C) 运行D) 逻辑 4.以下关于C#的异常处理的叙述中,正确的是【】。 A) 一个try块后面只能跟随一个catch块 B) 在try…catch…finally块中,当发生异常时只执行相应catch块中的语句,不会执行finally块 C) throw语句中必须指出抛出的异常 D) try块后面必须跟catch块或finally块组合使用,不能单独使用 5.以下关于try…catch…finall语句的叙述中,不正确的是【】。 A) catch块可以有多个B) finally块最多只能有一个 C) catch块和finally块都是可选的D) 可以只有try块,没有catch块和finally 块 6.一般情况下,异常类存放在【】中。 A) System.Exception命名空间B) System.Diagnostics命名空间 C) System命名空间D) Exception命名空间 7.分析下列程序代码: int num; try { num= Convert.ToInt32(Console.ReadLine());} Catch { //捕获异常} 当输入"abc"时,会抛出【】异常。 A) FormatException B) IndexOutOfRangException C) OverflowException D) TypeLoadException 8.用户定义的异常应该从【】类中继承。 A) ArgumentException B) IOException C) SystemException D) Exception 9..NET Framework中,处理异常是很有用的功能。一个try代码块可以有多个catch块与之对应。在多个catch块中,下面【】异常应该最后捕获。 A) Exception B) StackOverflowException C) SystemException D) FormatException 10.下列关于try…catch…finally语句的说明中,不正确的是【】。 A) catch块可以有多个B) finally块是可选的 C) catch块是可选的D) 可以只有try块 11.为了能够在程序中捕获所有异常,在catch语句的括号中使用的类名为【】。

第十章 控制复决题及答案

第十章控制 一、单项选择题 1、管理控制和一般控制同是一个( A )。 A、信息反馈过程 B、信息接收过程 C、管理过程 D、控制过程 2、保证组织计划与实际作业动态相适应的管理职能是( B )。 A、领导职能 B、控制职能 C、组织职能 D、计划职能 3、控制就是( A )各项活动,保证其按计划进行,并纠正各项偏差的过程。 A、监视 B、协调 C、领导 D、组织 4、确定控制标准,首先应该明确组织中哪些事或物需要加以控制,即确定( A )。 A、控制对象 B、控制人员 C、控制方法 D、控制水平 5、控制工作的关键步骤是( C )。 A、拟定标准 B、衡量绩效 C、纠正偏差 D、管理突破 6、按控制的时机的不同,可把控制方法分为( C )。 A、预先控制、持续控制、现场控制 B、战略控制、任务控制、结果控制 C、前馈控制、现场控制、反馈控制 D、内在控制、外在控制、结果控制 7、“亡羊补牢,犹未为晚”,可以理解成是一种( B )。 A、前馈控制 B、反馈控制 C、过程控制 D、现场控制 8、现场控制工作的重点是( B )。 A、把注意力集中在历史结果 B、正在进行的计划实施过程 C、在计划执行过程的输入环节上 D、控制行动的结果 9、确定控制对象和选择控制重点的工作是属于控制过程中( C )环节的工作。 A、衡量成效 B、纠正偏差 C、确立标准 D、找出偏差 10、预算是一种( B )。 A、控制 B、计划 C、领导 D、组织 11、JIT(Just-In-Time)是指( A )。 A、准时制 B、全面质量管理 C、最佳订购批量 D、质量控制

12、现金预算是对企业未来生产与销售活动中现金的( C )进行预测,通常由财务部 门编制。 A、使用情况 B、流出 C、流入与流出 D、流入 13、在库存控制中,企业使用经济订购批量可以使( B )最小。 A、订购成本 B、总成本 C、保管成本 D、运输成本 14、日本企业发明的准时库存系统,其目标是( D )。 A、减少库存成本 B、对库存进行定量控制 C、转嫁库存风险 D、实现零库存 15、平衡积分卡的控制指标包括财务、内部经营过程、学习和成长以及( A )。 A、客户 B、采购 C、成本 D、人力资源 二、多项选择题 1、控制的基本步骤包括( ABD )。 A、确定标准 B、衡量工作绩效 C、反馈 D、纠正偏差 E、修改目标 2、下列属于运用前馈控制的是( BCD )。 A、企业根据现有产品销售不畅的情况,决定改变产品结构 B、猎人把瞄准点定在飞奔的野兔的前方 C、根据虫情预报,农业公司做好农药储备 D、汽车驾驶员在上坡前,为了保持一定的车速,提前加速 E、瞄准靶心射击 3、根据时机的不同,可以将控制划分为以下几类:( BCE )。 A、最佳控制 B、反馈控制 C、同期控制 D、跟踪控制 E、前馈控制 4.要进行有效的控制必须( ABCDE )。 A、制定计划 B、有组织保证 C、配备合适的人员 D、有一定的技术手段 E、给予正确的领导 5、为了保证纠偏措施的针对性和有效性,必须在制定和实施纠偏措施的过程中注意下列问 题:( BCE )。 A、根据评估建立标准 B、找出偏差产生的主要原因 C、确定纠偏措施的实施对象

C#实验2流程控制异常处理

实验二流程控制异常处理 实验要求: 熟练掌握程序的三种流程结构,对于实际的应用问题能够理解并灵活运用;对于VS下中断模式,能够对于运行过程中的错误及时进行处理,掌握异常处理机制。 一、流程控制 1. 随机生成一个1-100之间的一个数,并由玩家进行猜测,提示玩家是猜大了还是猜小了或者猜对了。 using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int x; Random ra = new Random(); int y = ra.Next(1, 100); Console.WriteLine("输?入?1~100,退?出?输?入?0"); x = int.Parse(Console.ReadLine()); if (x!=0) { while (x!=0) { if (x < 0 || x > 100) { Console.WriteLine("输?入?值μ超?出?范?围§"); x = int.Parse(Console.ReadLine()); continue; } else if (x > y) Console.WriteLine("大洙?了?"); else if (x < y)

Console.WriteLine("小?了?"); else if (x == y) { Console.WriteLine("对?了?,?继ì续?输?入?y,退?出?输?入?n"); string s = Console.ReadLine(); if (s == "y") y = ra.Next(1, 100); else if(s=="n") return; else Console.WriteLine("输?入?不?正y确ā?); } x = int.Parse(Console.ReadLine()); } } else if (x == 0) return; Console.ReadKey(); } } } 2.已知在同一个笼子里总共有h只鸡和兔,鸡和兔的总脚数为f 只,其中,h和f由用户输入,求鸡和兔各有多少只? using System; using System.Collections.Generic; using System.Text; namespace鸡|兔?同? { class Program { static void Main(string[] args) { int chicken, rabbit; Console.WriteLine("请?输?入?鸡|和í兔?的?总哩?个?数簓:阰"); int h = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请?输?入?鸡|和í兔?的?脚?的?总哩?数簓:阰"); int f = Convert.ToInt32(Console.ReadLine()); while (f%2!=0)

Java作业实验六---异常处理

提交方式: 把文件名改为学号姓名,提交文档和源码(只需提交最顶层包文件夹) 实验六异常处理 一、实验目的 1.学会利用Try-catch-finally语句来捕获和处理异常; 2.掌握自定义异常类的方法。 二、实验要求 1.通过编程理解系统异常处理的机制和创建自定义异常的方法。 2.掌握基础类。 三、实验内容 (一)异常处理机制 1. 编写使用try…catch 语句处理异常的程序文件Demo4_1.java,

编译并运行程序,并把运行结果复制在下面 。 注意:如果在catch 语句中声明的异常类是Exception,catch 语句也能正确地捕获,这是因为Exception是ArithmeticException的父类。如果不能确定会发生哪种情况的异常,那么最好指定catch的参数为Exception,即说明异常的类型为Exception。 2、源文件是Demo3_2.java。要捕捉的异常是除数为零和数组下标越界。通过修改a和c[]下标值体验程序。 【思考】 ①先运行上面程序,观察运行结果。 ②按下条件分别修改数据,编译后运行,观察输出结果,分析在try…catch块里那些语句没有被执行,为什么? 块外那些语句可被执行到,为什么? 修改a=0,保持c[2]=200; 保持a=10,修改c[3]=200, 修改a=0,修改c[3]=200; ③再添加一个catch{Exception e}{ },位置在最前面,观察编译信息,说明什么? 3、编写Demo3_3.java 程序,计算两数相除并输出结果。使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。源代码如下:

实验六异常处理

实验六异常处理 云南大学信息学院面向对象技术导论 java程序设计大学教程实验 【开发语言及实现平台或实验环境】 Windows2000 或XP,JDK1.6与Jcreator4.0 【实验目的】 1. 掌握Java中异常的概念及含义。 2. 掌握异常的定义、抛出方法以及如何捕捉处理异常。 3. 熟悉如何将异常处理灵活运用到实际编程中。 【实验要求】 1. 运行上课讲解的例子; 2. 完成下列实验内容。 【实验内容】 一、读懂并运行下列程序,体会Java中异常处理机制。 1. 分析并运行下面的程序。参考源代码如下: import java.io.*; public class ExceptionTest { public static void main ( String args[] ) { for ( int i = 0; i < 4; i++ ) { int k; try { switch ( i ) { case 0: //除数为0 int zero = 0; k = 911 / zero; break; case 1: //空指针 int a[] = null; k = a[0]; break; case 2: //数组下标越界 int b[] = new int[4]; k = b[6]; break; case 3: //字符串下标越界 char ch = "China”.charAt(5); break; } }catch ( Exception e ) { System.out.println("\nTestCase#"+i+"\n");

System.out.println(e); } } } } 问题: (1) 程序中设计循环有何目的? (2) 程序中将产生哪些异常? (3) 程序中的异常是如何抛出、捕捉及处理的? 答:(1)获得全部的异常。 (2)除数为0,空指针,数组下标越界,字符串下标越界 (3)抛出:当语义限制被违反时,将会抛出(throw)异常,即产生一个异常事件,生成一个异常对象,并把它提交给运行系统,再由运行系统寻找相应的代码来处理异常。捕捉:异常抛出后,运行时系统从生成异常对象的代码开始,沿方法的调用栈进行查找,直到找到包含相应处理的方法代码,并把异常对象交给该方法为止,这个过程称为捕获(catch)异常。处理:书写特殊的异常处理代码进行处理。 实验结果: 2. 分析并运行下面的程序。程序源代码如下: public class ExceptionTest { public static void main ( String args[] ) { System.out.println("捕获不同类型的异常"); try { int a=10/0; } catch ( ClassCastException e ) { System.out.println("发生异常"+e); } finally{ System.out.println("执行finally语句");

第十章 运动损伤的急救

第十章运动损伤的急救 目的要求:掌握运动损伤的急救包扎、止血、骨折和关节脱位的临时固定以及伤员的搬运、人工呼吸和心肺复苏等急救方法。 主要教学内容:1、出血的急救 2、急救包扎方法 3、骨折的急救 4、关节脱位的急救 5、心肺复苏 6、搬运伤员的方法 7、抗休克 教学重点:出血、急救包扎、骨折、关节脱位、心肺复苏和抗休克的方法。 教学难点:出血、急救包扎、骨折、关节脱位、心肺复苏和抗休克的方法。 学时分配:8 学时 授课过程: 一、出血的急救 (一)出血的分类 1、按出血的部位分类 (1)内出血 (2)外出血 2、按出血的血管分类 (1)动脉血管出血(血色鲜红,从伤口的近心端呈喷射状流出,危险大。) (2)静脉血管出血(血液暗红,血液流出缓慢,危险性小于动脉出血。) (3)毛细血管出血(血色介于动静脉之间,一般没有危险。) (二)止血的方法 1、冷敷法 (1)作用:有止血、止痛、防肿的作用。 (2)使用范围:急性闭合性软组织损伤。 (3)方法:用冷水或冰袋敷于患部。 2、抬高患肢法 (1)作用:使出血部血压力下降。 (2)使用范围:四肢小静脉或毛细血管的出血。 (3)方法将患肢抬高于心平面15-20°左右。 3、加压包扎法 (1)使用范围:小静脉或毛细血管的出血。 (2)方法:用无菌敷料覆盖患部并用绷带加压包扎。 4、加垫屈肢止血法 (1)使用范围:前臂、手、小腿的出血。 (2)方法:将棉垫或绷带卷放于肘窝或膝关节窝处,屈曲前臂或小腿进行包扎。 5、指压法 (1)直接指压法 (2)间接指压法

二、急救包扎法 (一)包扎的作用 1、限制伤处活动,避免加重损伤。 2、保护创口,避免或减少感染。 3、支持伤肢,减轻疼痛。 4、减少出血,减轻伤部肿胀。 (二)包扎方法 1、绷带包扎 (1)环行包扎(2)螺旋形包扎(3)反折螺旋形包扎(4)“8”字形包扎 2、三角巾包扎 (1)手部包扎(2)头部包扎(3)足部包扎(4)大悬臂带(5)小悬臂带三、骨折的急救 (一)骨折的原因 1、直接暴力 2、传达暴力 3、牵拉暴力 4、积累暴力 (二)骨折的症状与体征 1、疼痛 2、肿胀和皮下瘀血 3、功能障碍 4、畸形 5、异常活动或骨擦音 6、压痛与震痛 7、X线拍片 (三)骨折的急救原则 1、防治休克 2、就地固定 3、先止血后包扎伤口 (四)骨折急救的注意事项 1、夹板的长短、宽窄要适宜,应使骨折处上下两个关节固定。 2、若无夹板,可用树枝、竹片等替代。 3、夹板要用绷带或软布包垫,夹板的两端、骨突部和空隙处要用棉花或软布填妥,防止压迫性损伤。 4、肢体明显畸形时,可将伤肢沿纵轴稍加牵引后再固定。 5、缚扎夹板的的绷带或宽布条应缚在骨折处的上下段。 6、固定要牢固,松紧要适宜。 7、四肢骨折固定时应露出指(趾)端。 8、上肢固定后,用悬臂带把患肢挂于胸前 9、固定后应尽快将伤员送往医院做进一步处理。 (五)骨折的急救固定法(P179-182) 四、关节脱位的急救 关节脱位是指相连两骨之间失去正常的连接关系。 (一)关节脱位的分类

实验室异常检验结果调查及处理程序改#精选.

实验室异常检验结果调查及处理程序 文件编码:SMP09―133 版本号:1

目录 一、目的 (1) 二、适用范围 (1) 三、责任 (1) 四、内容 (1) 五、附件 (8) 六、相关文件 (8) 七、变更历史 (8)

一、目的 建立一个实验室超标检验结果(OOS)及超趋势检验结果(OOT)和非期望结果(OOE)调查程序,以规范调查实验室超标检验结果(OOS)及超趋势检验结果(OOT)和非期望结果(OOE)的步骤及正确的处理方法,找出发生OOS/OOT/OOE的原因(生产、检验及其他),以便及时采取纠正预防措施,避免类似问题再次发生。 二、适用范围 本程序适用于实验室样品检测出现超标检验结果(OOS)及超趋势检验结果(OOT)和非期望结果(OOE)等异常检验结果时的处理方法(如原辅材料、包装材料、半成品、成品检验、分析方法验证、工艺验证及其他验证项目)。 三、责任 质控部、质保部、QC、相关部门负责人。 四、内容 定义: 1.1检验结果超标: 超出质量标准的检验结果(简称OOS结果)和超出趋势的检验结果(OOT结果)及非期望结果(OOE)的统称。 1.2超出质量标准的检验结果(简称OOS结果): 不符合既定的质量标准或接受标准的检验结果。任何有OOS结果的产品都不能被放行。 1.3超出趋势的结果(简称OOT结果): 此结果没有超出既定的质量标准或接受标准的限度,但已产生适当数量的数据不符合正常的结果分布。任何出现OOT结果的产品仍将要被放行。OOT只是用于内部管理控制的目的。 1.4. 非期望结果(简称OOE结果) 此实验结果超过历史的、预期的或先前的趋势限度。此结果没有超出既定的质量标准或接受标准的限度,但可能是不正常或者临近边缘的值(当主要检查项目,如含量检验结果等于上下限度值时,启动OOE调查程序)。OOE用于内部管理控制。 1.5有效结果: 在适当、科学并经批准的条件下所产生的检验结果,不管是否在质量标准或接受标准的限度之内。 1.6无效结果:

实验6 异常处理

实验6 异常处理 一、实验目的 1、掌握常见异常类的使用环境; 2、掌握异常处理的两种方法; 3、掌握自定义异常类的方法。 二、实验内容 1、在程序中处理常见异常。 2、自定义异常,并在程序中处理异常对象。 三、实验步骤 1、输入三角形三条边长,求三角形面积。处理可能发生的异常。class ValueException extends Exception{ public ValueException(){ System.out.println("三角形两边之和必须大于第三边"); } } class Triangle{ private double a,b,c; public Triangle(double a,double b,double c) { this.a=a; this.b=b; this.c=c; } public double area() throws ValueException { double p; double s; if(a+b<=c||b+c<=a||a+c<=b) throw new ValueException(); p=(a+b+c)/2; s=Math.sqrt(p*(p-a)*(p-b)*(p-c)); return s; } } class Test{ public static void main(String[] args) { try {Triangle t=new Triangle(1,4,5); System.out.println(t.area());

} catch(ValueException e){ e.printStackTrace(); } } } 2、定义Circle类,包含成员变量半径r和计算面积的方法getArea()。自定义异常类,当半径小于0的时候抛出异常。 class Rexception extends Exception{ Rexception(){ System.out.println("值错误"); } } public class Circle { double r; final double PI=3.1413; public Circle(double r) { this.r=r; } public double getArea()throws Rexception { if(r<=0) throw new Rexception(); return PI*r*r; } public static void main(String[] args) { try{ Circle c1=new Circle(-4); System.out.println("圆面积:"+c1.getArea()); }catch(Rexception e){ System.out.println("半径不能小于等于0"); } } }

相关文档