当前位置:文档之家› 模板与异常处理

模板与异常处理

模板与异常处理
模板与异常处理

实验14 模板与异常处理

一、实验目的

1.理解函数模板和类模板的概念。

2.会编写包含函数模板和类模板的程序。

3.正确理解C++的异常处理机制。

4.掌握异常处理的编程特点。

5.了解异常分类层次,常见系统异常。

6.学习自定义异常的定义及方法,异常的抛出与处理。

二、实验内容

1.编写一个求绝对值的函数模板,并测试。

2.请将冒泡排序函数改写成为模板函数并编写一个程序进行测试。

3.编写一个任意类类型AnyType模板,并请编写一个程序来使用该AnyType类模板。

4.编写求阶乘n!的函数,当用户的输入太大时(如51),会出现错误,使用异常处理机制来解决这一问题;如果n小于零,也抛掷一个异常进行处理。

5.编程并观察当库函数sqrt()的参数为负数,log()的参数为0时,系统会出现什么情况,请解决之。

6. 编写一个程序,用于根据用户输入的命令行参数数量来计算长方形、正方形、三角形的面积。如果输入的参数为一个、二个、三个则它们应分别对应正方形、长方形、三角形,如果没有参数,则通过异常处理方法显示错误消息。

三实验程序及结果

1、

#include

template

T fab(T a)

{

if(a>0)

return a;

else

return -a;

}

void main()

{

double a;

cout<<"请输入一个数:"<<'\n';

cin>>a;

cout<

cout<<"感谢使用本程序哦!"<<'\n';

}

2、

#include

using namespace std;

template

void paixu(T *a,int i)

{

for(int j=0;j

for(int k=0;k<=j-1;k++)

if(a[k]>a[k+1])

{

T m;

m=a[k];

a[k]=a[k+1];

a[k+1]=m;

}

};

void main()

{

int int_a[6]={12,15,1,4,798,20};

float float_a[6]={1.1,2.2,1.3,15,156};

cout<<"整型排序之前为:"<<'\n';

for(int i=0;i<6;i++)

cout<

paixu(int_a,6);

cout<<'\n'<<"整型排序之后为:"<<'\n';

for( i=0;i<6;i++)

cout<

cout<<'\n'<<"浮点型排序之前为:"<<'\n';

for( i=0;i<5;i++)

cout<

paixu(float_a,5);

cout<<'\n'<<"浮点型排序之后为:"<<'\n';

for(i=0;i<5;i++)

cout<

cout<<'\n'<<"感谢使用本程序哦!"<<'\n'; }

3、

#include

using namespace std;

template

class shuzu

{

private:

T a[12];

int b; int b;

public:

shuzu()

{

cout<<"请输入类中数组元素的个数:"<<'\n';

cin>>b;

cout<<"请对数组的元素初始化:"<<'\n';

for(int i=0;i

cin>>a[i];

}

void output()

{

for(int i=0;i

cout<

cout<<'\n';

}

void paixu()

{

int b;

public:

shuzu()

{

cout<<"请输入类中数组元素的个数:"<<'\n'; cin>>b;

cout<<"请对数组的元素初始化:"<<'\n';

for(int i=0;i

cin>>a[i];

}

void output()

{

for(int i=0;i

cout<

cout<<'\n';

}

void paixu()

{

for(int j=0;j

for(int k=0;k<=j-1;k++)

if(a[k]>a[k+1])

{

T m;

m=a[k];

a[k]=a[k+1];

a[k+1]=m;

}

}

};

void main()

{

cout<<"整型数组:"<<'\n';

shuzu a;

cout<<"整型排序之前为:"<<'\n';

a.output();

a.paixu();

cout<<'\n'<<"整型排序之后为:"<<'\n';

a.output();

cout<<"浮点型数组:"<<'\n';

shuzub;

cout<<"浮点型排序之前为:"<<'\n';

b.output();

b.paixu();

cout<<'\n'<<"浮点型排序之后为:"<<'\n';

b.output();

cout<<"字符型数组:"<<'\n';

shuzuc;

cout<<"字符型排序之前为:"<<'\n';

c.output();

c.paixu();

cout<<'\n'<<"字符型排序之后为:"<<'\n';

c.output();

cout<<'\n'<<"感谢使用本程序哦!"<<'\n'; }shuzub;

cout<<"浮点型排序之前为:"<<'\n';

b.output();

b.paixu();

cout<<'\n'<<"浮点型排序之后为:"<<'\n';

b.output();

cout<<"字符型数组:"<<'\n';

shuzuc;

cout<<"字符型排序之前为:"<<'\n';

c.output();

c.paixu();

cout<<'\n'<<"字符型排序之后为:"<<'\n';

c.output();

cout<<'\n'<<"感谢使用本程序哦!"<<'\n';

}

4、

#include

using namespace std;

int jc(int a)

{

if(a>10)

throw a;

else

{

int mul=1;

for(int i=1;i<=a;i++)

mul=mul*i;

return mul;

}

}

void main()

{

cout<<"请输入要求数的阶乘:"<<'\n'; int i;

cin>>i;

try

{

cout<

}

catch(int)

{

cout<<"输入的数过大,大于10啦!"<<'\n'; }

cout<<"感谢使用本程序哦!"<<'\n';

}

5、

#include

#include

void main()

{

cout<<"请输入被开方数:"<<'\n';

double a;

cin>>a;

try

{

if(sqrt(a)==NULL)

throw a;

else

cout<<"a的算术平方根:"<

}

catch(double)

{

cout<<"开放有误哦!被开放数为负数!"<<'\n'; }

cout<<"请输入对数:"<<'\n';

double b;

cin>>b;

try

{

if(log(b)==NULL)

throw b;

else

cout<<"log("<

}

catch(double)

{

cout<<"对数为为负!"<<'\n';

}

cout<<"感谢使用本程序哦!"<<'\n';

}

6、

#include

#include

using namespace std;

void acer(double a)

{

cout<<"正方型面积为:"<

}

void acer(double a,double b)

{

cout<<"长方形的面积为:"<

}

void acer(double a,double b,double c)

{

double pr=(a+b+c)/2;

cout<<"三角形的面积为:"<

void acer()

{

throw 1;

}

void main()

{

try

{

acer(2);

acer(1,2);

acer(3,4,5);

acer();

}

catch(int)

{

cout<<"函数没有无参数的哦!"<<'\n';

}

cout<<"感谢使用本程序哦!"<<'\n';

}

品质异常处理流程模板

品质异常处理流程 (公开文件,共4页) 一、目的: 规范品质异常处理流程,提高品质异常处理的时效性,确保来料质量及生产的正常运转,同时满足顾客的质量要求。 二、范围: 适用于本公司来料、制程、出货品质异常的处理。 三、定义: 3.1 来料品质异常: a、不符合相关检验标准要求,且不良率超过质量目标时; b、合格物料制程中发现重点物料不合格时; c、有经过改善且有效果确认,但又重复发生品质异常时。 3.2 制程品质异常: a、使用不合格的原料或材料; b、同一缺陷连续发生; c、不遵守作业标准或不遵守工艺要求; d、机械发生故障或精度磨损; e、其他情形影响到产品质量时。 3.3 出货品质异常: a、客户投诉或抱怨; 四、职责 4.1 来料品质异常: 品质:a.负责填写《品质异常联络单》“异常描述”部分; b.负责将《来料检验报告》、《品质异常联络单》发送于采购,抄送工程、生产; c负责品质异常改善结果确认。 采购:负责将《来料检验报告》、《品质异常联络单》发送给供应商并及时与供应商联系跟踪供应商及时回复“原因分析”“纠正与预防措施”并将结果回复品质部. 4.2 制程品质异常: 品质部: a,负责品质异常之最终判定; b,负责确认品质异常责任部门; c,负责主导品质异常案例的处理过程; d,负责对责任单位的改善结果进行追踪确认

异常责任单位: a负责品质异常的原因分析,提出临时措施及长期改善对策并执行。 生产部: a负责品质异常的改善和预防措施的实施及验证改善措施的有效性; 其它相关单位: a在需要时进行异常改善的配合 4.3 出货品质异常: 品质部: a负责将品质异常通知各部门及确定责任部门; b负责异常改善后的跟踪确认; c负责处理客户抱怨 异常责任单位: a负责品质异常的原因分析,提出临时措施及长期改善对策并执行。 生产部: a负责品质异常的改善和预防措施的实施及验证改善措施的有效性; 营业部: a负责将客户抱怨反馈给相关部门。 其它相关单位: a在需要时进行异常改善的配合 五、工作程序: 5.1 进料品质异常: 5.1.1 依相关检验标准判定不合格,针对不合格物料标示“不合格”,并立即移至不良品区域。 5.1.2 异常成立4小时内开立《品质异常联络单》通知采购。 5.1.3 采购接《品质异常联络单》后4小时内转责任供应商。 5.1.4 供应商需于1个工作日内针对异常物料提出临时对策,如对异常内容有疑问,需在4 小时与品质相关人员确认清楚。 5.1.5 供应商必须在《品质异常联络单》要求的期限前(如无明确要求,默认为《品质异常联络单》发出后2个工作日内)回复完整的改善方案。 5.1.6 品质部对供应商回复内容进行确认,针对改善措施不合格部分予以退件,要求供应商重新回复。改善措施合格,则报告予以归档,跟踪后续进料品质状况,依5.1.7执行。 5.1.7 针对供应商改善后产品加严检验,连续追踪3批无异常予以结案,转正常检验;连续追踪3批中途发现不良现象仍存在,则重复5.1.2-5.1.7。 5.1.8 如供应商改善措施回复后连续2个月无进料,则强制结案,后续进料依正常检验执行。 5.1.9

实验室偏差处理程序

实验室偏差处理程序 1适用范围 本标准适用于实验室样品检测出现超出规定结果(OOS)和异常分析结果(AAR)时的处理方法(如:原辅材料、包装材料、中间体、成品检验,分析方法验证、工艺验证和其它验证项目)。 2职责 检验员:出现超规定的结果与异常结果时,立即报告主管及时填写《实验室调查报告》。 QC主管:负责实验室偏差的处理,审核《实验室调查报告》所填的内容是否正确、真实、齐全。 3内容 3.1定义 3.1.1超出规定结果(Out Of Specification·OOS) 实验结果不符合规定的限度范围(质量标准、分析方法验证、工艺验证等技术参数)。 3.1.2异常分析结果(Atypical Analytical Results·AAR) 3.1.2.1相同的制备样品重复实验结果或重复制样的检验结果精度不好,可能影 响到结果的判断。 3.1.2.2某个结果,由我们对被测物料、实验室样品和检测步骤已获经验可知其 异常。(可包括认为异常的规定范围内的结果) 3.2步骤 3.2.1QC检验员在检验中一旦得到OOS或AAR立即报告QC主管。 3.2.2调查人员由检验员和QC室主管组成,共同进行实验室调查。 3.2.2.1检验员和QC主管将对所获原始数据进行回顾,对实验步骤作讨论,对 所用仪器的再检查,并填写《实验室调查报告》表。 3.2.2.2若调查清楚地证明:OOS或AAR是由于实验室的差错所致(如人、仪 器、试剂),则剔除已得数据,并重新检测。重检须经QC主管同意,任 何未经同意的重检是不规范的行为。重检记入《实验室调查报告》表中。 重新检测所需样品用原始实验室样品,若有证据证明原有样品不具代表

安全监控系统异常情况处置及汇报程序

*****煤业有限公司 安全监测监控系统异常情况处置汇报及考核管理办法 二〇一五年

安全监测监控系统异常情况 处置汇报及考核管理办法 为保证我矿安全监测监控系统的正常、准确的运行,结合我矿实际,特制定本规定。 一、煤矿瓦斯监测监控系统异常种类有: 1、瓦斯浓度超限; 2、传感器报警点、断电点等定义不当; 3、馈断电报警; 4、矿井瓦斯监测系统无记录,; 5、其它报警、不正常断电等异常情况。 二、安全监测监控系统异常情况处置措施 1、安全监测监控系统分站、断电器及各类传感器等设施设备每天由监控维护人员巡检,发现问题及时处理,处理时间不超过4小时,无法处理时,必须在24小时内更换完毕。各单位改变或拆除与安全监控设备关联的电气设备的电源线及控制线,检修或回撤与安全监控设备关联的电气设备,需要安全监控设备停止运行时,报矿通风总工程师批准,并报告矿调度监控室后,方可进行。 2、异常情况处置期间,任何人员不得甩开瓦斯(电)闭锁保护强行送电。

三、安全监测监控系统异常情况汇报制度 (一)井下监测监控系统发生突发性异常情况汇报程序 1、井下监测监控系统发生异常时,必须立即向调度监控室汇报,汇报内容包括发生故障时间、现象、原因、处理办法、估计恢复时间等,调度监控室值班员通知维护人员立即进行处理同时向清徐县煤炭管理局监控中心汇报。 2、在故障期间必须有安全措施,并将实施情况记录在册。 3、在故障发生后,应积极组织抢修,尽快恢复正常。异常情况处置结束后,需与调度监控室值班人员进行汇报,并确认监控系统运行正常。 4、当安全监控系统发出甲烷传感器异常报警时,调度监控中心值班人员立即向通风队长和总工程师汇报,并通知现场施工单位人员,若为传感器或线路故障,则按安全监控系统故障分析报告制度执行。 5、若核实情况为瓦斯超限报警,调度中心接到汇报后要命令超限地点立即停止工作,切断电源,将人员撤到安全地点,并按照瓦斯超限汇报程序向相关人员汇报同时向清徐县煤炭管理局监控中心汇报。 6、调度监控室值班人员应将监控系统异常情况做好记录,记录内容包括:发生故障时间、现象、原因、处理办法、采取的措施、恢复时间等。

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()); } } } 将结果运行截屏贴在下面:

实验五 实用模板与异常处理

皖西学院信息工程学院School of Information and Engineering, West Anhui University 《面向对象方法与C++程序设计》 实验报告 专业计算机科学与技术专业 班级计科1202班 姓名柯冬生 学号2012013854 任课教师何富贵

实验五模板与异常处理(2学时) 学号:2012013854 姓名:柯冬生班级:计科1202班成绩:

} 代码: (1) #include using namespace std; template T max(T x,T y) { return x>y?x:y;} int max(int a,int b) { return a>b?a:b;} double max(double a,double b) { return a>b?a:b;} int main() { cout<<"max('3','7') is "< using namespace std; int max(int a,int b) { return a>b?a:b;} double max(double a,double b) { return a>b?a:b;} int main() { cout<<"max('3','7') is "<

实验四 异常处理

Java程序设计实验指导 实验四异常处理 一、实验目的 1、了解Java的异常处理机制; 2、掌握如何合理应用异常处理机制; 3、学会自定义异常处理类。 上机练习之前,必须先完成程序的书写,再上机调试。 二、实验任务 1、类SimpleException中有方法 public static double Division(double x,double y) { if(y==0) throw new IllegalArgumentException("分母不能为0"); //手动抛出异常,对于双精度而言,除数为0可以得到无穷大的值,本不会报异常错误,这里手动强制报错 return x/y; } 主方法中有代码: double a=Double.parseDouble(args[0]); double b=Double.parseDouble(args[1]); System.out.println(Division(a,b)); 借助异常机制获所有可能出现的异常,并提示相关异常的出错信息。最后,无论程序如何结束,保证程序都能输出语句“游戏结束!!!” 2、自定义日期类异常, 1)、定义一个程序DateExceptionTest,该程序主方法中: a)、采用Scanner类的对象来接收三个整数 b)、对于非整数数据,能采用异常进行验证 c)、用三个整数借助自定义类DateException构建出一个日期对象,并以“yyyy-mm-dd” 的形式输出该日期对象。 d)、使用类 2)同时要求,自定义类DateException继承自Exception a)、拥有两个构造方法,分别是DateException(String s)、public DateException(int year,int month,int day) throws DateException和一个成员方法Date getDate()。 b)、第二个构造方法能接收三个整数,拥有验证三个数据是否合法的能力,验证时,对于非法数据格式,采用抛出异常DateException,抛出异常时,携带错误提示信息。 c)、DateException类中,借助方法getDate()获得该组合的日期对象 三、实验指导: 输入一个日期判断是否合法,注意日期的表示范围。 四、实验要求: 1、在上机前写出全部源程序; 2、能在机器上正确运行程序; 五、程序清单: 六、运行结果: 七、调试分析及实验心得 . 1 .

设备异常处理流程及规定

宏飞机械厂设备异常处理流程 流程图10 责任人表单作业内容 生产部门/ 相 关部门/ 发现 者 生产异常出现时,班组长/线长不能处理或 异常会导致停产时间超过30分钟时, 应立即上报,或开出《生产异常报告单》 进行处理。 生产部门/ 相 关部门/ 负责 人 生产部负责人接到报告后应在10分钟内 赶赴现场;必要时可同时通知相关部门 负责人,相关部门负责人接到通 知后应在10分钟内赶到现场. 相关部门负责 人 相关部门负责人到达现场后立即对异常 进行分析,若部门负责人不能到场应在 10分钟内派人到达现场. 总经办/总经 理 如不能立即处理应作出是否停产的意见, 并注明预计恢复生产的时间.停产应由总经 理批准. 相关部门 负责人 生产异常报告 单 相关部门负责人针对冋题应在30分钟 内制定出应急处理措施,制定措施时应 尽可能地降低影响 生产部门负责 人 生产异常报告 单 生产部门按应急措施进行生产 调整生产 生产部/品质 部责任人 生产异常报告 单 应急措施的有效性由生产部与品质部共同 验证,如验证不符合则重新制定相关措施. 生产部负责人 验证结果符合生产及品质相关要求,可 以在恢复生产后由品质部和生产部对异 常进行跟进确认. 相关责任部门 负责人 生产异常报告 单 生产恢复正常后相关部门应对问题的深 层次的原因加以分析,并在两个工作日 内制定出长期预防措施. 生产部负责人 生产异常报告 单 生产部应协同品质部对责任部门的长期 预防措施执行结果进行跟踪

宏飞机械异常处理规定 1.目的 为了更好的规范和完善公司生产异常处理作业,使生产问题发生后,各部门人员迅速、有效的处理,减免停工时间,提高生产效率,特制定本流程。 2.适用范围 适用于公司所有生产异常的处理。 3.职责 生产部门负责生产异常的反馈和处理措施验证。 品质部负责品质异常的处理及验证。 设备组负责设备异常的处理。 计控部负责物料异常的处理。 5技术部负责技术、关键工序设备、工装模具、工艺异常的处理。 4.作业规范 生产异常反馈 4.1.1当生产发生异常或有出现异常的趋势时,生产部发现人员和现场管理人员(如班组长)应即时给予分析,并主动积极寻求解决方法, 包括与相关人员联系,如能及时解决则不在本流程规定内。 30 4.1.2如情况严重,班组长不能处理或异常会导致停产时间超过分钟时, 应立即报告车间主管,由车间主管进行解决。若车间主管也

实验 异常处理

实验报告六 一【实验目的】 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.doczj.com/doc/5510700033.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) {

实验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.doczj.com/doc/5510700033.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()); } } }

施工中设备异常应急处置程序

施工中设备异常应急处置程序 (1)大罐发生倾斜。在上液期间发生倾斜,立即停止对该罐的上液,再落实其下部土地的结实程度,若土质松软则必须把该罐的液体导出,若罐体与旁边的罐解除,且下部结实则停止对该罐的补液即可。前期预防:到放罐区实地走一圈,落实有无泥浆池或者暗坑,要求甲方提供的地方平整,其次备罐人员对一些不可避免的小坑要用石头砖块进行必要的找平,对每一个罐底都要重新的实地落实。现场打液人员要定好罐区,发现异常及时的把该罐闸门关掉或者倒流程把液抽出。(2)大罐液体施工期间液面不下。检查闸板是否开到位、闸板芯子是否与手柄滑脱,可能是管线脱皮堵塞。先用扳手打开芯子,然后用榔头对变形处的管线敲击来解除堵塞。若解决不了,则放弃该罐,按照液量、压力情况加砂直至不能施工为止。前期预防:流程人员及时检查管线,发现内有脱落则及时更换,流程闸门在接管线时都应进行开关试验。 (3)冬天施工流程管线上冻。施工前检查管线,出现上冻,立即安排人员用喷灯进行烤罐,用榔头不时的震击弯脖处及管线。若发现罐1/2以上冻住,则立即停止施工。前期预防:a、采取防冻措施,流程保温;b、若提前一天上液,则要对每个流程都上一部分,不要在一侧上满。 (4)多个流程液面下降差别大。有一侧混砂车管线可能发生堵塞,或者混砂闸门有问题,需要重新接一根上液管线。前期预防:接好管线后打开闸门测试;为防止突发情况,应备足快速接头和管线。 (5)混砂车交联泵坏。施工开始阶段发现此问题则立即停止施工进行整改。正常期间要多取样多看压力曲线来判断交联的好坏。如果施工中途泵坏而无法交联,要立即切换到泵前交联。不同的混砂车闸门倒换不一样,混砂工需按照相应的方法进行倒换泵和闸门。另外要对经常不用的交联泵进行维护保养,确保备用泵的可靠性。如果泵坏了,只能停砂顶替,进行抢修。前期预防:加强混砂工的技能水平及混砂系统的保养维护能力。 (6)施工期间泵头内有异响。压裂车泵头内有异响,未加砂阶段需停泵整改;若处于加砂阶段,需停止该车作业,等施工结束进行整改。前期预防:平时泵工拔泵时多对泵头进行内测,并检查凡尔体和凡尔座以及凡尔座和泵头之间有无裂

JAVA实验异常处理

成都大学实验报告 实验项目名称异常处理的编程练习 一、实验目的: 1、了解异常类的作用 2、掌握对异常的捕获和处理方式 二、实验内容(包括源程序及相关说明): 1、使用try….catch语句处理异常。在程序中主动产生一个ArithmeticException 类型被0 除的异常,并用catch 语句捕获这个异常。最后通过ArithmeticException 类的对象e 的方法getMessage 给出异常的具体类型并显示出来。源代码如下: public class EXP5_1 { public static void main(String[] args){ System.out.println("这是一个处理异常的例子"); try{ int i=10; i/=0; } catch(ArithmeticException e){ System.out.println("异常是:"+e.getMessage()); } finally { System.out.println("finally语句被执行"); } } } 2、异常类型不匹配的处理方式。源代码如下: public class EXP5_1 { public static void main(String[] args){

System.out.println("这是一个处理异常的例子"); try{ int i=10; i/=0; } catch(IndexOutOfBoundsException e){ System.out.println("异常是:"+e.getMessage()); } finally { System.out.println("finally语句被执行"); } } } 3、包含多个catch子句的异常处理方式.在try 子句中设计两个可能出现的异常,当 a 为0 时会发生异常。另外一个是肯定的异常,因为数组c 的长度为1,定义c[42] 是非法的。通过两个catch 子句分别来捕获异常。 public class EXP5_1 { public static void main(String[] args) { try { int a=args.length; System.out.println("\na = "+a); int b=42/a; int c[]={1}; c[42]=99; } catch (ArithmeticException e) { System.out.println("发生了被 0 除:"+e); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("数组下标越界:"+e); } } } 4、使用throw语句抛出异常. 在上面的实验中,可以发现,异常对象是Java 运行时由 系统抛出的。抛出异常也可以通过使用throw 语句实现。throw 是Java 语言的关 键字,用来告知编译器此处要发生一个异常。throw 后面要跟一个新创建的异常类对象,用于指出异常的名称和类型。 public class EXP5_1{ static void throwProcess(){ try {

实验八 异常处理

实验八异常处理 【开发语言及实现平台或实验环境】 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)抛出异常

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语句");

检验过程中异常现象处理程序(doc 8)

HEBCTC 河北省建筑工程质量检测中心程序文件 HEBCTC/CX 1004—2003 检验过程中异常现象处理程序 2003-05-10发布2003-06-01实施河北省建筑工程质量检测中心发布

1 目的范围 本程序规定了当检验过程中出现异常现象时,能够实现有效处理,确保检验结果准确可靠。 本程序适用于在检验工作中对异常现象的处理。 2 职责 2.1 检验人员负责对异常现象的紧急处置并报告。 2.2 检验室主任负责对异常现象的处理。 2.3 质量监督员负责检验过程中对异常现象处理的监督和检查。 2.4 业务室负责对异常现象处理结果的审核。 2.5 技术负责人批准对异常现象处理的结果。 3 程序 3.1 检验前异常现象的处理 3.1.1 检验人员在检验前若发现样品与委托内容不符时,不得进行检验。应及时通过业务室与委托方联系,查明情况再行处理。 3.1.2 检验人员在检验前发现仪器设备、标准物质或者设施环境未满足检验要求,不得进行检验。按相关程序进行处理。 3.1.3 水、电不能保证检验工作正常运行时,检验应暂停。依据有关规定,样品可继续使用的,应将其存放在规定的环境中或做出相应的处理。水、电恢复正常后,继续进行试验,并对数据进行验证。样品不可继续使用的,应将其废弃,按《样品管理程序》、《样品抽样程序》重新送样、抽样。

3.2 检验中异常现象的处理 3.2.1 在检验过程中遇到突然断电、停水等异常情况,造成检验工作无法进行时,应暂停正在进行的检验工作,且已进行的检验步骤作废。当条件恢复正常且确定仪器可正常进行操作后方可重新进行检验。 3.2.2 当检验人员在仪器操作时发现或怀疑仪器有异常时,应立即停止正在进行的检验工作,对仪器设备进行必要的检查和检测,当确定仪器设备正常后方可继续进行检验。如仪器设备经检查确定异常情况后应立即停止检验工作,原检验数据作废。报业务室及室主任。小故障可由检验人员自行修复,并在仪器设备维修记录上进行记载。检验人员无法修复的故障应报业务室核定后贴上停用证,待组织仪器修理后,经检定合格方可继续使用,除非仪器的故障不涉及其计量性能。 3.2.3 当检验数据有异常现象时,应检查仪器设备是否有异常及检验人员在检验时的操作是否符合标准的规定,如仪器异常按 4.2.2条处理;如为人员操作不当应按标准规定等重新进行检验,原检验数据作废;如仪器及人员操作无异常或不当,应按标准重新进行检验或由另一检验人员按标准进行操作,如二人的检验数据相同或在允差范围之内则数据有效;如两人数据不符,应请第三人进行检验以重合者数据为准,并应查找数据差错原因防止以后再发生类似现象。 3.3 检验后异常现象的处理 3.3.1 确认仪器设备有异常情况时,应分析该异常情况对检验数据的影响程度及异常情况可能产生的日期及相关日期所出具的报告份数。 3.3.2 如仪器的异常对数据无影响,对已发报告可不作追究。

模板与异常处理

实验14 模板与异常处理 一、实验目的 1.理解函数模板和类模板的概念。 2.会编写包含函数模板和类模板的程序。 3.正确理解C++的异常处理机制。 4.掌握异常处理的编程特点。 5.了解异常分类层次,常见系统异常。 6.学习自定义异常的定义及方法,异常的抛出与处理。 二、实验内容 1.编写一个求绝对值的函数模板,并测试。 2.请将冒泡排序函数改写成为模板函数并编写一个程序进行测试。 3.编写一个任意类类型AnyType模板,并请编写一个程序来使用该AnyType类模板。 4.编写求阶乘n!的函数,当用户的输入太大时(如51),会出现错误,使用异常处理机制来解决这一问题;如果n小于零,也抛掷一个异常进行处理。 5.编程并观察当库函数sqrt()的参数为负数,log()的参数为0时,系统会出现什么情况,请解决之。 6. 编写一个程序,用于根据用户输入的命令行参数数量来计算长方形、正方形、三角形的面积。如果输入的参数为一个、二个、三个则它们应分别对应正方形、长方形、三角形,如果没有参数,则通过异常处理方法显示错误消息。 三实验程序及结果 1、 #include template T fab(T a) {

if(a>0) return a; else return -a; } void main() { double a; cout<<"请输入一个数:"<<'\n'; cin>>a; cout< using namespace std; template void paixu(T *a,int i) {

实验10--java异常(答案)

实验六Java异常处理 【实验目的】 1)掌握Java异常的概念及工作机制 2)掌握异常的分类 3)掌握抛出异常语句的使用(throw) 4)掌握抛出捕获处理异常语句的使用(try…catch…finally) 5)掌握上抛异常语句的使用(throws) 6)掌握创建自定义异常 【实验环境】 JDK1.6+Eclpise3.2 【实验准备】 1)复习课件中理论知识 2)练习课堂所讲的例子 【实验内容】 1、编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样处理。 package SIX; import java.io.IOException; import java.io.InputStreamReader; import java.io.BufferedReader; public class CIRCLE { public static void main(String[] args) throws IOException { System.out.print("请输入半径: "); BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); try{ System.out.println("圆的面积为: "+computerArea(Double.parseDouble(br.readLine()))); } catch(NumberFormatException e){ System.out.println("您输入的不是数值,请重新输入"); } } public static double computerArea(double r)

异常情况处理流程说明

异常情况处理流程说明 一、“异常情况”包括 1、质量不合格问题。主要包括制程质量问题、售后质量问题、技术设计或图纸下发后出现问题、调试中 质量问题、外购设备物资质量问题等; 2、交货期延误问题、采购交期延误问题及其他有关生产进度的问题等; 3、生产物料损耗异常问题; 4、生产设备损坏问题; 5、员工违纪问题; 6、其它异常问题。 二、员工出现异常问题,应及时按规定报于部门领导; 三、企管部(质检部)在日常工作中发现员工出现异常问题时,应作出《整改通知》或《整改报告》,由 责任部门签收; 四、员工所属部门部长应及时落实责任人并对问题组织处理。责任人是指直接或间接造成各类问题发生的 员工包括各级管理人员。 五、责任部门部长应督促责任人填写《异常情况处理报告》,责任人应根据问题发生的原因、经过、问题 的现象或后果、问题发生的时间和发现时间,进行详细如实填写,并随后签字确认; 六、责任人填写完毕交直接主管进行原因分析,提出解决措施,并填写《异常情况处理报告》,上交部门 负责人。 1、责任人的直接主管为班长的,该班长应根据问题的具体情况认真分析,确定属于哪种原因,并分析自 己在问题中所负的责任,必须认真填写明白,不得包庇、隐瞒; 2、责任人的直接主管为部长的,则由责任人所属部门部长填写; 3、责任人为部长的,责任人可以不填写此栏,只填写“问题描述”和“责任部门处理意见”; 4、责任人为副总的,责任人填写“问题描述”和“处理意见”; 七、责任人所属部门部长应详细调查、分析问题,确定解决措施,并填写处理报告,依据公司的有关规定 并分析自己在问题中所负的责任,做出公平、公正的处理意见;该部长应本着认真客观的态度对待问题,反思自己工作的欠缺,及时纠正并预防问题的再次发生。 八、责任部门将报告交分管副总,分管副总分析问题发生原因和相关负责人的处理意见,根据公司的有关 规定,对责任人做出处理意见;并由责任部门部长将报告交企管部(质检部); 九、企管部长(质检部长)实施监督职责,本着公平、公正地原则,对问题深入分析,不确定的问题应重 新调查,并分析责任部门的处理建议是否符合公司的有关规定。若符合规定则填写问题处理报告,做出企管部(质检部)的处理意见;若不符合有关规定,或责任部门的处理意见有失公平、公正,则需

相关主题
文本预览
相关文档 最新文档