c异常处理习题答案
异常处理习题讲解

© Dr.Leabharlann ihui• 3.判断题 • (1)try语句块在指定的异常引发后,对异常进行相应处理 。( X ) • (2)如果异常触发后局部变量num没有被赋值,不使用 retun也可跳出方法执行。( X ) • (3)MemberAccessException表示访问错误,类型成员不 能被访问。( V ) • (4)预定义的“++”和“--”一元运算符不参与checked检查 和unchecked检查。( X )
© Dr.Lihui
• (5)解决整型算术运算溢出这个问题有 改变编译器的设置 和使用校验(checked)语句 两种途径。 • (6)若运算是常量表达式,执行checked语句则产生编译错 误:The operation overflows at complie time in checked mode 。 • (7)finally语句包含异常处理程序,清理代码。 • (8)unchecked语句的作用是显式地标明了它所作用的语句 块或表达式不需要进行溢出检查。
© Dr.Lihui
• (5)运算是非常量表达式,运行时会抛出溢出异常: OverFlowException异常。( V ) • (6)无论try块中的语句是否发生异常,总是执行finally块中的 语句。( V ) • (7)通常情况下,在finally块内放置的是清理资源的代码。( V ) • (8)在try-finally中可以加入catch用于处理语句块中出现的异常 。( V )
© Dr.Lihui
• (7)finally语句包含了:( D ) A.增加数据代码 B.执行代码列 C.捕捉程序 D.异常处理程序 • (8)关于finally语句说法正确的是( C ) A.不能用finally语句块来强制执行相关代码 B.finally块一般用于增加在try块中分配的任何资源 C.在try-finally中finally用于保证代码语句的执行 D.无论try块中的语句是否发生异常,都不会执行finally块 中的语句
异常判定标准与处理试题

异常判定标准与处理试题1、异常处理时效为()A、48HB、24H(正确答案)C、12HD、6H2、()负责原材料进料检验,达到异常标准作判退,并反馈SQE处理A、生管B、SQEC、IQC(正确答案)D、仓库3、()负责原材异常处理,追踪供应商有效改善A、生管B、SQE(正确答案)C、IQCD、仓库4、一个时间段为几个小时()A、2H(正确答案)B、1HC、4HD、5H5、X-RAY不良有()即停线B、1PCS(正确答案)C、2PCSD、4%6、裂片站不良()即启动异常A、1%B、2%(正确答案)C、2PCSD、3PCS7、SPI站()即启动异常机制A、1%B、2%C、2PCS(正确答案)D、3PCS8、()负责协助调查发生原因及执行有效改善方案A、制造(正确答案)B、工程C、生管D、品质9、()负责质量单位开出的异常单进行分析A 生管B 工程(正确答案)D 仓库10、()负责异常造成停线影响到出货并及时应对出货计划调整A 生管(正确答案)B 工程C 品管D 仓库11、SPI站同一位置同一时间段同一不良现象()启动异常A、3PCS(正确答案)B、1%(正确答案)C、5%D、0.5%12、AOI可以检测哪些不良现象()A、少锡(正确答案)B、空焊(正确答案)C、短路(正确答案)D、漏贴标签13、如下哪种情况会造成异常()A、机器当机无法生产B、生产/测试治工具未进行首件确认(正确答案)C、良品与不良品未区分(正确答案)14、如下哪些属于十大禁止()A、禁止不扫描上料(正确答案)B、禁止挪料生产(正确答案)C、禁止测试不看画面(正确答案)D、禁止测A扫B(正确答案)15、如下哪种情况会造成停线()A、人员未依静电防护作业B、测试程序版本错误(正确答案)C、OQC同一种不良发现两次(正确答案)D、人力不足16、哪些站别达到3%需要停线()A、SPI(正确答案)B、AOI(正确答案)C、目检(正确答案)D、总检(正确答案)17、下面哪项属于异常()A、人员未做静电防护(正确答案)B、生产测试工具未进行首件测试(正确答案)C、仪器未校验或未依规定进行日常保养D、其它的一些物体当住传感器18、下面哪项属于停线()A、良品不良品未区分B、未做首件检查(正确答案)C、锡膏未按管制要求使用(正确答案)D、人力不够19、下面哪项是异常开立基准()A、同一时间段不良达到1%(正确答案)B、IPQC稽核缺失C、6S稽核缺失D、同一时间段连续发生3PCS(正确答案)20、下面哪项是重大异常开立基准()A、缺件(正确答案)B、错料(正确答案)C、批量异常(正确答案)D、反向(正确答案)21、产线停线时间超过30分钟,钢板上锡膏回收搅拌后方可上线使用对(正确答案)错22、不良品返工/返修需按标准流程作业,自检合格后须重新经品质复检后方可流入下一工对(正确答案)错23、ABL启动后,需要填写异常单或者停线通知单,反馈责任单位分析改善对错(正确答案)24、任何异常都需要做风险评估,并填写风险评估报告对错(正确答案)25、ABL启动后,需针对风险批产品进行HOLD,通知责任单位分析及改善,并追踪重工结果对(正确答案)错26、不管什么异常,都属于重大异常对错(正确答案)27、工程部:负责对设计不良或产品标准不明确的整改制订纠正与预防措施;对制造不良的纠正与预防措施给予技术支持对(正确答案)错28、品质部:负责对发现或反馈来的产品品质异常进行检验判定、品质异常时的处理协调、不合格品的处置跟进,纠正与预防整改效果的验证、不合格信息传递与跟进等对(正确答案)错29、为产品有缺陷避免争议所制定对(正确答案)错30、目的:为了规范、及时、高效地处理制程品质异常问题,保障制程产品品质,特制订本标准对(正确答案)错31、产线风险批应为制造领班组长评估对错(正确答案)32、产线异常应为生管开立对错(正确答案)33、SPC是统计制程管理对(正确答案)错34、超过3spc管制范围属于异常对(正确答案)错35、OQC同一批批退一次属于异常对错(正确答案)36、SOP规定错误料号规格等属于异常对(正确答案)错37、测试连续3片同一问题为异常,连续5片以上停线对(正确答案)错38、材料辅材超过使用期限属于异常对错(正确答案)39、机器参数设定错误属于停线对(正确答案)错40、人力无法满足开线属于异常对错(正确答案)。
C#程序设计:异常单元测试与答案

一、单选题1、C#中用try…catch…捕获的异常属于()错误A.运行B.逻辑C.语法D.拼写正确答案:A2、在()块中放置异常的处理方法A.finallyB.throwC.tryD.catch正确答案:D3、使用关键字()可以抛出异常,如抛出自定义的异常和系统异常。
A.throwB.thisC.newD.Exception正确答案:A4、以下异常处理结构中,错误的是()A.try{} catch{} finally{}B.try{} catch{}C.catch{} finally{}D.try{} finally{}正确答案:C5、下列关于异常处理的表述,正确的是()A.try所抛出的异常一定能被catch捕获B.catch只能出现一次C.try、catch、finally必须同时出现D.无论异常是否抛出,finally的内容都会被执行正确答案:D6、以下代码的输出是()static void Main(string[] args){int m = 10;int n = 10;int[] a = new int[5];try{for (int i = a.Length; i > 0; i--){a[i] = i;n = 1 / (n - m);}}catch (DivideByZeroException e1){Console.Write("除零异常,");}catch (IndexOutOfRangeException e2) {Console.Write("数组越界," );}catch{Console.WriteLine("产生异常");}finally{Console.WriteLine("异常处理完毕"); }}A.数组越界,产生异常B.除零异常,产生异常C.数组越界,异常处理完毕D.除零异常,异常处理完毕正确答案:C二、判断题1、异常对象都是从Exception类派生的。
项目9 异常处理.-习题答案

习题答案一、选择题1.以下保留字不用于异常处理逻辑的是( A)A.ifB.elseC.tryD.finally2.以下关于Python语言中try语句的描述中,错误是(B)A. 当执行try代码块触发异常后,会执行except后面的语句B. try用来捕捉执行代码发生的异常,处理异常后能够回到异常处继续执行C. try代码块不触发异常时,不会执行except后面的语句D. 一个try代码块可以对应多个处理异常的except代码块3.哪一个类是所有异常类的父类( C)。
A. TypeErrorB. ErrorC. ExceptionD. BaseException4. 在Python异常处理机制中,(C)子句的代码是无论是否有异常都要执行。
A. IfB. elseC. finallyD. Except5.在完整的异常语句中,语句出现的顺序正确的是(D)A.try->except->finally->elseB.try->else->finally->exceptC.try->finally->else->exceptD.try->except->else->finally二、编程题1. 编写程序通过raise引发一个ZeroDivisionError异常,捕获后输出“捕获到ZeroDivisionError”。
参考答案:try:raise ZeroDivisionErrorexcept ZeroDivisionError:print("捕获到ZeroDivisionError")2.编写程序,按照用户输入的边长计算正方形的面积,若边长为负值则抛出异常(正方形的面积公式:S=a*a)参考答案:def get_width():width = int(input("请输入正方形边长:"))assert width>=0 ,"输入的边长不符合规范"return widthdef cal_area():width = get_width()return width*widthdef show_are():try:print("执行show_area()方法")square_area = cal_area()print(f"正方形的面积是:{square_area}")print("正方形面积计算完成")except Exception as err:print(f"捕获到异常:{err}")show_are()3.编写程序实现对学生的Python课程期末成绩进行等级评定,大于等于90分的为“优秀”,80分到90分的(包括80分)的为“良好”,60分到80分的(包括60分)为“合格”,60分以下为“不合格”,最有把学生成绩打印出来。
(完整word版)异常处理练习题

异常处理练习题一、选择题1.java中用来抛出异常的关键字是A、tryB、catchC、throwD、finally2.关于异常,下列说法正确的是A、异常是一种对象B、一旦程序运行,异常将被创建C、为了保证程序运行速度,要尽量避免异常控制D、以上说法都不对3.()类是所有异常类的父类。
A、ThrowableB、ErrorC、ExceptionD、AWTError4.java语言中,下列哪一子句是异常处理的出口A、try{…}子句B、catch{…}子句C、finally{…}子句D、以上说法都不对5.下列程序的执行,说法正确的是public class MultiCatch{public static void main(String args[]){try{int a=args.length;int b=42/a;int c[]={1};c[42]=99;System.out.println(“b=”+b);}catch(ArithmeticException e){System.out.println(“除0异常:”+e);}catch(ArrayIndexOutOfBoundsException e){System.out.println(“数组超越边界异常:”+e);}}}A、程序将输出第15行的异常信息B、程序第10行出错C、程序将输出“b=42”D、程序将输出第15和19行的异常信息6.下列程序的执行,说法正确的是class ExMulti{static void procedure(){try{int c[]={1};c[42]=99;}catch(ArrayIndexOutOfBoundsException e){System.out.println(“数组超越界限异常:”+e);}}public static void main(String args[]){try{procedure();int a=args.length;int b=42/a;System.out.println(“b=”+b);}catch(ArithmeticException e){System.out.println(“除0异常:”+e);}}}A、程序只输出第12行的异常信息B、程序只输出第26行的异常信息C、程序将不输出异常信息D、程序将输出第12行和第26行的异常信息7.下面程序抛出了一个“异常”并捕捉它。
异常处理流程试题及答案

异常处理流程试题及答案一、选择题1. 在Java中,下列哪个关键字用于捕获异常?A. tryB. catchC. throwD. finally答案:B2. 下列哪个选项不是异常处理的组成部分?A. 异常抛出B. 异常捕获C. 异常声明D. 异常传播答案:C3. 在Python中,异常处理的关键字是?A. tryB. exceptC. finallyD. all of the above答案:D二、填空题1. 在Java中,当程序运行时发生异常,可以使用____关键字来捕获异常,并在____块中处理异常。
答案:catch;catch2. 在Python中,异常处理的语法结构为:try____except____。
答案:try;except三、简答题1. 请简述异常处理的流程。
答案:异常处理的流程通常包括以下步骤:- 检测异常:程序运行时,系统检测到异常。
- 抛出异常:系统将异常抛出,通知程序发生了错误。
- 捕获异常:程序通过try-catch块捕获异常。
- 处理异常:在catch块中编写代码来处理异常。
- 清理资源:无论是否捕获到异常,finally块中的代码都会被执行,用于资源清理。
2. 异常处理的好处是什么?答案:异常处理的好处包括:- 增强程序的健壮性:能够处理程序运行中出现的意外情况。
- 提高代码的可读性:将异常处理代码与正常业务逻辑分开,使代码更清晰。
- 避免程序崩溃:通过捕获和处理异常,防止程序因未处理的错误而崩溃。
- 资源管理:通过finally块确保资源(如文件、网络连接等)被正确释放。
四、编程题1. 编写一个Java程序,实现对数组索引越界的异常处理。
答案:```javapublic class ArrayIndexExceptionHandling {public static void main(String[] args) {int[] numbers = {1, 2, 3, 4, 5};try {System.out.println(numbers[5]);} catch (ArrayIndexOutOfBoundsException e) { System.out.println("数组索引越界异常:" + e.getMessage());}}}```。
C面向对象程序设计第12章异常处理

throw 0; //异常信息从函数内部 抛出
return x/y; }
12.3.3 多个catch语句
void Xhandlf(test) throw test;
else throw "Value is zero";
cout<<"Please input two integers:"; cin>>m>>n;
try
{ if (n==0) throw 0; cout<< (m/n)<<endl; 抛出一个整型异常
}
catch(int)
{
cout<<"Divided return -1;
by
0!"<<encdalt;ch语句捕获一个 整型异常并处理
}
return 0;
}
12.3.1 C++程序处理异常的一般形式
try{ // try Block
} catch (type1 arg){
//exception handling for type1 } catch (type2 arg){
//exception handling for type2 } //... catch (typeN arg){
示例:自定义的运行终止函数
#include <iostream> using namespace std; void myterm() //自定义的运行终止函数 {
cout<<"This is my terminater."<<endl; //...释放程序中申请的系统资源 exit(1); } int main() { //... try{
《异常处理管理规定》培训考核试题

《异常处理管理规定》培训考核试题1.当发生哪些异常时需要开停线通知单() [单选题]A.任一款产品综合不良超过 10%,电池盒烧机、自动工作等重缺陷有1例;(正确答案)B.异常对产品的功能有影响,且持续发生,技术部门已给出有效控制方案时;C.制程生产过程中外检岗位发现黑点不良1%;D.在制产品接到市场反馈,确认为一般级客诉,在排查现库存同样存在相同现象时;2.在异常处理时,以下哪项属于品质部的职责() [单选题]A.品质 PQE/QC只要负责异常问题的确认,按照《制程异常反馈单》给相关部门分析,不需要跟踪改善对策的效果确认;B.品质部负责开出异常单,反馈给生技,只要责任部门回复对策就好,不需要验证确认对策的有效性;C.负责异常物料处理以及重大异常发生导致停线时生产排期的重新确认和人员按排。
D.IQC/SQE负责来料异常物料的库存数据排査、隔离、退料,改善物料到料跟进与信息拉通,对供应商进料不良的改善跟踪及效果确认。
(正确答案)3.产线发生异常时是否需要向品质部反馈() [单选题]A.不需要,只需向生技部反馈B.需要(正确答案)C.不需要,可以自己私下处理即可D.以上都有对4.突发异常时以下哪项转线工时是合理的() [单选题]A.(小烟)流水线转线:30分钟(正确答案)B.(雾化芯/器,包装)精益线转线:30分钟C.(电池盒/杆)精益线转线:25分钟D.当异常发生时,PC要求临时排配当天没有计划的机型,物料临时领用的,转线时间 1H。
5.资材部职责是什么() [单选题]A.当发生特急异常与重大异常时以《停线通知单》提报停线,知会生产相关部门;B.负责异常物料处理有重大异常发生导致停线时不需要对生产的排期重新确认和人员安排C.负责异常物料处理以及重大异常发生导致停线时生产排期的重新确认和人员安排(正确答案)D.对工艺结构问题验证改善和ECR申请提出,并进行ECN变更跟进落实。
6.在异常处理时,以下哪项产线做法是正确的() [单选题]A.品质部负责开出异常单,反馈给生技,只要责任部门回复对策就好,不需要验证确认对策的有效性;B.负责异常问题点的反馈,针对问题自身先做排查及纠正;(正确答案)C.NPI/PE负贵对异常原因分析与责任归属的判定及异常造成的损失数据进行审核,所有异常临时处理方案以及制程异常的长期改善对策输出;D.领班负责异常问题点的反馈,针对问题不需要做排查及纠正7.下列哪项是生产部的职责() [单选题]A.异常现象改善措施的实施执行,针对不良品无需返修处理;B.NPI/PE负贵对异常原因分析与责任归属的判定及异常造成的损失数据进行审核,所有异常临时处理方案以及制程异常的长期改善对策输出;C.负责异常问题点的反馈,针对问题自身先做排查及纠正;(正确答案)D.品质 PQE/QC负责异常问题的确认,按照品质标准确认和复判并开出《制程异常反馈单》给相关部门分析,限度样品的制定,改善对策的效果确认和跟踪。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C.catch(…)语句可以放在catch语句组的中间
D.程序中try语句与catch语句是一个整体,缺一不可
下列程序运行结果为(A)。
#include<iostream>
using namespace std;
class S{
public:
~S( ){cout<<”S”<<”\t”;}
解法一
#include <iostream>
#include <cstring>
using namespace std;
class String{
public:
String(const char*);
String(const String&);
~String();
char operator[](int);
delete[] sPtr;
}
char String::operator[](int subscript){
if(subscript<0 || subscript>strlen(sPtr))
throw(subscript);
return *(sPtr+subscript);
}
int main(){
try{
delete[] sPtr;
}
char String::operator[](int subscript){
if(subscript<0 || subscript>strlen(sPtr)){
char* out_of_index="Out of range in index of array";
throw(out_of_index);
strcpy(sPtr,s);
}
String::String(const String ©){
sPtr=new char[strlen+1];
if(sPtr==NULL)throw("Copy constructor abnormal");
strcpy(sPtr,;
}
String::~String(){
1.概念填空题
1.1C++程序将可能发生异常的程序块放在try中,紧跟其后可放置若干个对应的catch,在前面所说的块中或块所调用的函数中应该有对应的throw,由它在不正常时抛出异常,如与某一条catch类型相匹配,则执行该语句。该语句执行完之后,如未退出程序,则执行catch后续语句。如没有匹配的语句,则交给C++标准库中的termanite处理。
try
{throw "exception";}
catch( char*)
{cout<<"exception”<<endl;}
throw"exception";
}
~T( ) {cout<<"destructor";}
};
void main()
{cout<<"main function”<< endl;
}
cout<<"s=”<<s<<endl;
}
int fun( int i)
{if(i>=10)
throw i;
return a[i];
}
数组下标越界!
S=55
#include <iostream>
using namespace std;
void f();
class T
{public:
T( )
{cout<<"constructor"<<endl;
strcpy(sPtr,s);
}
String::String(const String ©){
sPtr=new char[strlen+1];
if(sPtr==NULL)throw("Copy constructor abnormal");
strcpy(sPtr,;
}
String::~String(){
D.throw语句抛出的异常可以不被捕获
关于函数声明float fun(int a,int b)throw,下列叙述正确的是()。
A.表明函数抛出float类型异常
B.表明函数抛出任何类型异常
C.表明函数不抛出任何类型异常
D.表明函数实际抛出的异常
下列叙述错误的是()。
A.catch(…)语句可捕获所有类型的异常
3.选择题
下列关于异常的叙述错误的是(A)。
A.编译错属于异常,可以抛出
B.运行错属于异常
C.硬件故障也可当异常抛出
D.只要是编程者认为是异常的都可当异常抛出
下列叙述错误的是()。
A.throw语句须书写在时语句块中
B.throw语句必须在try语句块中直接运行或通过调用函数运行
C.一个程序中可以有try语句而没有throw语句
}
return 0;
}
解法二
#include <iostream>
#include <cstring>
#include <stdexcept>
using namespace std;
class String{
public:
String(const char*);
String(const String&);
~CException() {}
void Reason() { cout <<"Exception:"<< m_nReason << endl; }
private:
int m_nReason;
};
void fn1(){
throw new CException(EXCEPTION_1);
}
int main(){
String str1("This is C++");
String str2(str1);
cout<<str1[3]<<endl;
cout<<str2[18]<<endl;
}
catch(char* c){
cout<<c<<endl;
}
catch(int i){
cout<<i<<"下标越界"<<endl;
try{
fn1();
}Hale Waihona Puke catch(CException* e){
e->Reason();
}
return 0;
}
void ShowStr(){cout<<sPtr<<endl;}
private:
char *sPtr;
};
String::String(const char *s){
sPtr=new char[strlen(s)+1];
if(sPtr==NULL)throw("Constructor abnormal");
};
char fun0() {
S s1;
throw(‘T’);
return‘0’;
}
void main(){
try{
cout<<fun0()<<”\t”;}
catch(char c){
cout<<c<<”\t”;}
}
A.S TB.O S TC.O TD.T
4.写出程序运行结果
#include <iostream>
throw表达式的行为有些像函数的函数调用,而catch子句则有些像函数的函数定义。函数的调用和异常处理的主要区别在于:建立函数调用所需的信息在编译时已经获得,而异常处理机制要求运行时的支撑。对于函数,编译器知道在哪个调用点上函数被真正调用;而对于异常处理,异常是随机发生的,并沿调用链逆向查找异常处理子句,这与运行时的多态是不一样的。
sPtr=new char[strlen(s)+1];
if(sPtr==NULL)throw("Constructor abnormal");
strcpy(sPtr,s);
}
String::String(const String ©){
sPtr=new char[strlen+1];
if(sPtr==NULL)throw("Copy constructor abnormal");
#include <iostream>
using namespace std;
enum{EXCEPTION_1 = 1, EXCEPTION_2, EXCEPTION_3};
class CException{
public:
CException(int nReason) { m_nReason = nReason; }
2.简答题
2.1C++中的异常处理机制意义,作用是什么?
当在try块中抛出异常后,程序最后是否回到try块中继续执行后面的语句?
什么叫抛出异常?catch可以获取什么异常参数?是根据异常参数的类型还是根据参数的值处理异常?请编写测试程序验证。