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

实验四 多线程异常处理

实验四 多线程异常处理
实验四 多线程异常处理

实验四多线程异常处理

1.实验目的

(1) 掌握Java的异常处理机制及相关实现方法能够在程序设计中熟练运用异常及相关类及对象;

(2) 掌握Java多线程的概念和实现方法;

(3) 掌握Java多线程的同步问题;

2.实验内容

实验题1创建两个线程,一个线程打印“A”,另一个线程打印“B”,比如ABBABAABBA….

代码:

package cn.shangji.ThreadDemo;

public class Xt1 implements Runnable{

/**

* @param args

*/

static Thread thread1=null;

static Thread thread2=null;

public static void main(String[] args) {

// TODO Auto-generated method stub

Xt1 xt=new Xt1();

thread1=new Thread(xt);

thread2=new Thread(xt);

thread1.start();

thread2.start();

}

@Override

public void run() {

// TODO Auto-generated method stub

while(true){

if(Thread.currentThread()==thread1){

try {

Thread.sleep(100);

System.out.print("A");

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if(Thread.currentThread()==thread2){

try {

Thread.sleep(100);

System.out.print("B");

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

}

运行结果:

实验题 2假设有火车票1000张,创建10个线程模拟10个售票点,每个售票点100毫秒买一张票。打印出售票过程,注意使用synchronized确保同一张票只能卖出一次。输出格式如下:

第4售票点卖出第100张票

第2售票点卖出第101张票……

代码:

package cn.shangji.ThreadDemo;

class TicketSystem implements Runnable {

int size;// 总售票数

// int number=0;//

int i = 1;// 售票序号

boolean available = true;

Thread thread[] = new Thread[10];

public TicketSystem(int size) {

this.size = size;

productTread();

}

public void productTread() {

for (int i = 0; i < 10; i++) {

thread[i] = new Thread(this);

thread[i].setName("" + (i + 1));

}

}

public synchronized void sell() {

try {

Thread.sleep(20);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

if (available) {

System.out.println("第" + Thread.currentThread().getName()

+ "售票点卖出第" + (++i) + "张票");

}

if (i == size) {

available = false;

System.out.println("票已售完,请明天再来……");

System.exit(0);

}

}

public void run() {

// TODO Auto-generated method stub

for (int i = 0; i < 10; i++) {

if (Thread.currentThread() == thread[i]) {

while (i < size) {

sell();

}

}

}

}

}

public class Xt2 {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

TicketSystem ts = new TicketSystem(100);

for (int i = 0; i < 10; i++) {

ts.thread[i].start();

}

}

}

运行结果:

实验题3 假设某家银行,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有两个顾客,每人都分3次,每次100元将钱到入。试编写一个程序,模拟实际作业。程序如下:

class CBank

{ private static int sum=0;

public static void add(int n){

int tmp=sum;

tmp=tmp+n; // 累加汇款总额

try{

Thread.sleep((int)(10000*Math.random())); // 小睡几秒钟 }

catch(InterruptedException e){}

sum=tmp;

System.out.println("sum= "+sum);

}

}

class CCustomer extends Thread // CCustomer类,继承自Thread类{ public void run(){ // run() method

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

CBank.add(100); // 将100元分三次汇入

}

}

public class Ex6_1

{ public static void main(String args[])

{ CCustomer c1=new CCustomer();

CCustomer c2=new CCustomer();

c1.start(); c2.start();

}

}

[基本要求] 运行程序5次,观察每次运行结果是否相同。

经验证知每次运行结果不相同。

[思考问题] 程序运行结果每次是否相同,运行时间是否相同,为什么?

运行结果每次都不相同,运行时间也不相同,因为 Thread.sleep((int) (1000 * Math.random()));该语句随机产生一个时间。

①要使程序运行结果每次相同,应该怎样修改程序?

在CBank类中add(int n)的方法中加入synchronized,使得线程同步。

②程序中为什么要使用异常处理?

因为Thread的方法:public static void sleep(long millis,

int nanos)

throws InterruptedException

抛出异常,所以必须对异常进行处理

实验题4在程序中主动产生一个ArithmeticException 类型被0 除的异常,并用catch 语句捕获这个异常。最后通过ArithmeticException 类的对象e 的方法getMessage 给出异常的具体类型并显示出来。

代码:

package cn.shangji.ThreadDemo;

public class xt4 {

/**

* @param args

*/

private static int i = 12;

private static int j = 0;

public static void main(String[] args) {

// TODO Auto-generated method stub

try {

int sum = i / j;

} catch (ArithmeticException e) {

// TODO: handle exception

System.out.println("通过e 的方法getMessage 显示异常详细消息为:");

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

}

}

}

运行结果:

实验题5在一个类的静态方法mathod()方法内使用throw 产生异常,使用throws 子句抛出mathod()的异常,在main 方法中捕获处理异常。

代码:

package cn.shangji.ThreadDemo;

/**

* @param args

* @throws Exception

*/

public static void throwException() throws Exception {

try {

throw new Exception("新建自定义异常");

} catch (Exception e) {

// TODO: handle exception

throw e;

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

try {

throwException();

} catch (Exception e) {

// TODO: handle exception

System.out.println("捕获异常"+e);

}

}

}

运行结果:

实验题6在try 子句中设计两个以上可能出现的异常。通过多个catch 子句分别来捕获异常。并使用finally子句确保一段代码不管发生什么异常都能被执行。

代码:

package cn.shangji.ThreadDemo;

import java.io.FileReader;

import java.io.IOException;

/**

* @param args

*/

static int i;

static String str="习题六";

static int a[]=new int[10];

public static void main(String[] args) {

// TODO Auto-generated method stub

try {

System.out.println(a[11]);

FileReader fsr=new FileReader("xt6.java");

} catch (ArrayIndexOutOfBoundsException e) {

// TODO: handle exception

System.out.println(e);

}

catch( IOException ioe){

str=ioe.getMessage();

System.out.println(ioe);

}

finally{

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

}

}

}

运行结果:

实验题7 编写一个程序,输入一个班某门课程成绩,统计及格人数、不及格人数平均分。为此设计一个异常类,当输入的成绩小于0分或大于100分时,抛出异常,程序将捕捉这个异常,并作出相应处理。

[基本要求] 编写完整程序

代码:

package cn.shangji.ThreadDemo;

import java.util.Scanner;

@SuppressWarnings("serial")

class ScoreException extends Exception{

String message;

public ScoreException(double i){

message="当请输入的成绩:"+i+"不合理,请重新输入!!!";

}

public String toString(){

return message;

}

}

public class Xt7 {

/**

* @param args

*/

int pass,unPass,n;

double sum;

public Xt7(int n){

this.n=n;

}

public void setScore() throws ScoreException{

double i=0;

for(int j=0;j

Scanner sc=new Scanner(System.in);

i=sc.nextDouble();

if(i>100 || i<0){

throw new ScoreException(i);

}else{

if(i>=60){

++pass;

}

else

++unPass;

}

sum+=i;

}

}

public void show(){

System.out.println("及格人数为:"+pass);

System.out.println("不及格人数为:"+unPass);

System.out.println("平均分为:"+sum/n);

}

public static void main(String[] args) { // TODO Auto-generated method stub

System.out.println("请输入要统计的人数:");

Scanner sc1=new Scanner(System.in);

int m=sc1.nextInt();

Xt7 score=new Xt7(m);

System.out.println("请输入成绩:");

try {

score.setScore();

score.show();

} catch (ScoreException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

运行结果:

如果出现异常:

感想:

本次实验复习了异常类,对异常处理熟悉了。异常类是个很重要的类,很多时候都需要加入异常处理。可以根据异常修改程序的错误。线程可以实现多个任务同时执行,提高cpu利用率。

实验三异常处理 [实验目的] 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()); } } } 将结果运行截屏贴在下面:

A版 汇签: 制定:审核:批准:修订记录:

1.目的 为了规范产线发生异常时,能及时、准确地反映并能通过相关人员确认、分析、及时解决,确保生产正常进行。 2.适用范围

适用于客户与工厂合作产品之生产线发生的异常现象。 3. 职责 3.1 工厂品质:提出异常问题,确认是否属实。 3.2 工厂工程:负责产线异常分析,找出问题原因,提出改善对策。 3.3 工厂IQC:跟进改善结果及效果确认;对来料进行管控。 3.4 工厂品质:提供异常的最终处理方案,并对改善方案评估/验证;供应商改善报告回复及监控。 3.5 客户项目、结构、工程:负责结构、软/硬件异常问题的解决。 3.6 客户采购:负责来料异常商务方面的处理。 3.7 客户计划:负责异常发生时总体计划的协调和异常发生产生的工时和物料的签合。 3.8 质量总监:让步接收最终审批。 4. 异常处理流程 4.1工厂仓库按客户计划要求根据BOM及套料单领取物料安排生产! 4.2产线在生产中发现产品与样板不符、功能缺失、装配出来的成品达不到标准要求或来料无法使用等现象时, 及时上报IPQC、工厂品质&工程等相关人员确认。 4.2 工厂品质确认异常可接受,通知产线继续生产;如确认异常成立则交工厂工程分析同时开出《生产异常报 告》。 4.3 经工厂工程分析,给出初步分析结果,结果分为工艺问题、设计问题、来料问题。 4.4 由工厂工程分析为工艺问题,由工程辅导产线纠正生产工艺,工厂品质监督确认,产线恢复正常生产。 4.5 经工厂工程初步分析异常属于设计问题,在能力范围内能解决的自行处理,但需将解决办法知会客户,若 无法解决的则书面知会客户品质、项目、结构、计划。由客户计划主导协调客户项目结构分析在30分钟内给出临时处理解决办法,经工厂品质确认合格恢复生产;对于后期的改善对策,由客户品质主导负责协调项目、结构工程等一起实施有效的解决对策并进行验证,得到工厂品质确认方可进行生产安排! 4.6由工厂工程及品质确认异常是来料问题,第一时间以邮件通知客户计划、品质、采购,并要求客户品质在 30分钟内对物料问题给予回复处理意见(临时解决办法),工厂给予相应配合和支持!同时客户品质联系供应商到工厂工厂及时解决,并要求供应商给出不良原因分析及改善报告回复,客户品质对其进行验证,同时要求供应商挑选符合品质标准的物料经品质确认后方可恢复生产。 4.6.1若供应商没在规定时间(原则上要求供应商4小时内)到工厂处理,先由采购或品质与供应商沟通,如 果供应商同意接收工厂工厂挑选并承担其挑选费用和不良物料,产线予以上线生产! 4.6.2 由于A 物料来料不良比例较高,拆修时造成B物料不良,产线立即提报生产异常单和提报预估损耗比例, 让客户品质现场确认,后续以此作为退料依据! 4.7.生产异常时产线处理: 4.7.1当产线单项不良超过20%,通过加工处理,不良率仍超过5%,经与客户计划协商,产线开出异常通知单, 通知停线。工厂计划根据实际情况提报工时损耗及物料损耗明细,让客户计划汇签确认! 4.7.2生产过程中造成A类物料≥1%的损耗,连续二个小时达到此标准产线暂停线待处理,如超1.5%应立即暂 停线待分析处理。 4.7.3生产过程中造成B类物料≥3%的损耗,应立即暂停线待分析处理。 4.7.4生产异常发生时如客户品质有人在工厂由客户品质确认,如无则由工厂品质确认,必须在接到异常半小

车间异常处理流程图 1、生产计划的异常 如若出现生产计划异常,生产车间应根据计划进行调整,迅速合理的做出工作安排,保证生产效率,确保总产量不变;安排因计划调 整而遗留的产品、半成品、原材料的盘点、入库、清退等处理工作; 安排因计划调整而闲置的人员做前加工工作;安排人员以最快速度做 计划更换的物料、设备等准备工作;利用计划调整的时间做必要的教 育训练。 2、物料计划的异常 接到生产计划后,相关人员要立即确认物料状况,查验物料有无短缺,随时掌控各种物料信息,反馈给相关部门,避免异常的发生; 物料即将告缺前30分钟,用警示灯、电话或书面形式反馈给采购、 资财、生产管理部门;物料告缺前10分钟必须确认物料何时可以接上;如属短暂断料,可安排闲置人员做前加工、整理整顿或其它零星 工作,如断料时间较长,可安排教育训练,或与生管协调做计划变更,安排生产其他产品。 3、设备异常 立即通知工程维修部门协助排除,安排闲置人员整理整顿或做前加工工作。如排除故障需要教长时间的,应与生管部门协调另作安排。 4、制程品质异常 对有品质不良记录的产品,应在产前做好重点管理,异常发生时,迅速用警示灯、电话或其他方式通知品管部及相关部门;协助品管、 责任部门一起研究对策,配合临时对策的实施,以确保生产任务的 达成,在对策实施前,安排闲置人员做前加工或整理整顿工作,如 果异常暂时无法排除时,与生管协调做生产变更。

5此外,如遇到设计工艺异常应迅速通知品管、生技或开发部。 水电异常则要迅速采取措施降低损失,通知工程动力维修部门抢修,对于闲置人员可做其他安排。生产异常排除后,一定要坚持“三不”原则进行处理,以避免类似问题的重复发生。

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

网上报税操作流程及异常处理 一、网上报税完整业务流程(网上申报→远程抄报税→网上扣款): 1.网上申报 使用“网上申报软件”填写申报表,导出网上“申报文件”上传至陕西省国家税务局“专用发票认证和网上申报受理系统”(网址:,并查看申报结果。(报表填写要准确无误且申报成功,确保申报成功); 2.远程抄报税 进入“增值税防伪开票系统”首先应正常抄税,再点击“远程抄报”模块,依次点击:报税状态→远程报税→报税结果;(必须确保在“报税处理”模块已将本月税抄至IC卡中,才能点击“远程抄报”导航图中的四个图标,每个步骤都有对应提示); 3.网上扣款 进入航天信息申报软件点击办税平台或进入陕西省国家税务局“专用发票认证和网上申报受理系统”(网址:,完成网上扣税工作,扣税成功后进入远程抄报模块再次点击报税状态→远程报税→报税结果→清卡操作;清卡成功后就完成了本月的抄报税工作。 二、网上报税异常处理: 1、远程抄报税比对异常: 企业进入“增值税防伪开票系统”点击“远程抄报”模块的“报税结果”,若提示“错误”,代表申报表填报有误(申报表错误栏次详见错误提示信息),此时,企业和申报软件服务单位联系(使用航天信息申报软件拨打),删除错误申报表。删除后,企业方可再重新进行网上申报、远程抄报税操作。 2、网上扣款异常: 企业登录陕西省国家税务局“专用发票认证和网上申报受理系统(网址:,点击“未缴款信息查询”,再点击“扣款”,若显示“扣款失败”,请按以下程序办理: 1)企业核实是否签订了三方协议,并保证账户余额充足; 2)企业账户若余额充足,需到签订三方协议的银行查询税款是否已被扣除; 3)企业如查询到账户内未扣除税款,需携带当期申报表到税务大厅办理扣缴税款业务。

实验八异常处理 【开发语言及实现平台或实验环境】 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.了解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/ee18434142.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()); } } }

文件编号 xxxxxx 公司 版次A/0 品质异常处理流程及办法 页码第1 页共3 页编制审核批准实施日期 一、目的: 为了使产品在发生异常情况时能够及时传递并得到有效解决,确保产品质量符合需求。二、适用范围: 所有生产工序 三、品质异常定义 ①根据经验,感觉与正常情况不一样时; ②不良类型第一次发生时; ③相同类型的不合格品连续发生2~3 件的时候; ④不能正确判断产品是否合格的时候; ⑤感觉设备、工装模具有问题时。 四、工作流程 1、操作者在生产作业过程中发现异常时,必须马上停止作业。 2、操作者将异常件暂时存放在返工箱内(兰色),及时向巡检员汇报。严禁操作者自 作主张对异常件进行处理。 3、巡检员按作业指导书标准对异常件进行检查,判定是否合格,初步分析异常产生原 因,填写《品质异常记录表》。 ①判定合格时,操作者可继续生产。 ②判定不合格时,巡检员根据情况确定不合格数量,必要时要求操作者对已加工的产 品进行全检。然后由巡检员进行分类,不合格品放入废品箱(黄色),不良品放入不良品箱(白色),把返工品放入返工品箱(兰色)。待异常原因消除后操作者方可进行生产作业。若异常原因涉及设备、工装问题,巡检员应及时通知生产部门协调处理。 ③巡检员无法判定时是否合格或异常原因时,应及时通知质量管理人员进行确认。 4、质量管理人员根据有无必要,成立对策小组,尽快采取临时措施恢复生产,尽快找 到对策解决根部问题。 四、相关表单 1、《品质异常记录表》QR/C.07-08

品质异常记录表 QR/C.07-08 日期工序操作者巡检员 异常描述 判定结果□合格品□不良品□废品□返工品 原因分析 是否需要制定措施□是□否 改进措施 品质异常记录表 QR/C.07-08 日期工序操作者巡检员 异常描述 判定结果□合格品□不良品□废品□返工品 原因分析 是否需要制定措施□是□否 改进措施

文件修(制)订履历 N0. 版次修(制)订日期修(制)订内容拟制人1 1.0 2013-04-22 首次发布杨雨风 文件发放范围及份数(在“( )”中打“√”表示需分发的单位,在“[ ]”中填写该单位发放文件份数): ( √ ) 总经办 [ 1 ] ( √ ) 品质部 [ 1 ] ( √ ) 工程技术部 [ 1 ] ( √ ) 物控部 [ 1 ] ( √ ) 制造部 [ 1 ] ( ) 营销部 [ ] ( ) 财务部 [ ] ( ) 人力资源部 [ ] ( √ ) 文控中心 [ 1 ] ( ) 设备部 [ ] ( ) 其他: [ ] 拟制杨松日期2013-4-21 审核日期 批准日期

1.目的: 为更加规范生产现场发生异常时,能及时准确地反映并能通过相关人员确认、分析、及时解决,确保生产顺利进行特制订此规定 2.范围: 适用公司生产过程中所有生产线上发生的品质异常现象 3.定义: IPQC-----制成检验控制 PQC------Process Quality Control (制造线品质控制)。 PE-------Process Engineer(制造工艺工程师)。 4.职责: 4.1品质部:IQPC或PQC发现的生产异常,由品质IPQC进行异常处理单的开具并由上级主管审核。同时负责跟进改善结果及效果确认 4.2生产部:产线管理人员负责对自行发现及品质开具的异常事项的确认,产线技术员对异常进行初步分析与处理,无法自行处理解决时,以联络单方式开具给工程PE工程师 4.3工程部:负责生产线上异常分析,找出异常原因,提出改善对策。并制定长期预防措施. 4.4物控部:负责及时将因生产物料,设备引起异常的相关信息反馈给供应商,监督供应商落实对异常处理的决议; 并负责因生产异常而导致的交期延后同营销部的沟通和确认; 5.作业程序 5.1产线员工在作业中如发现品质异常的产品,应立即通知组长,再由组长通知品质IPQC进行判定,制造部车间技术人员,进行初步的分析,与解决。在车间技术人员无法处理时,则应依品质开具的品质异常单开具《生产异常处理联络单》通知工程部协助处理。 5.2工程部到达现场后依据品质部开具的品质异常单(包含异常的具体信息)及不良实物,结合实际情况,进行分析,并给出解决方案。需相关部门协同解决生产异常的,由工程部电话通知各部门现场共同解决或召开现场会。 5.3当工程部PE工程师通知相关人员时,被通知人员在上班期间应30分钟内赶到事发现场(如遇特殊情况应告知可以到达的时间或可以代行决策的人员,原则上不可以超过45分钟),如部门负责人不能及时赶到现场的,应在规定时间内派人到场,并参照以下程序进行处理: A.立即对所发异常按照“人机料法环”五个方面进行调查分析,查找异常原因; B.立即判断出问题的严重程度和其可能的影响程度,如事态严重由工程部召开现场会并汇报上级领导; C.找出发生异常的原因,立即采取措施,消除异常,防止事态继续扩大; D.落实相关参与处理部门责任。并对品质异常单进行填写,在实际异常得到解决后当天,品质部对参与部门进行完整《品质异常单的》文件的分发. 5.4相关部门在接到《生产异常处理联络单》后应立即了解情况,并分以下情况进行处理: A.品质异常:由品质部负责对异常的发现与开具品质异常单(全员品质,全员都可以发现品质异常),车间技术员能自行分析与解决的由车间技术员处理,车间技术员无法处理的品质异常时,则由异常车间以联络单方式通知工程部协助处理。工程部PE工程师给出分析原因,改善对策,同时在三方统一方案后,以工程改善对策,交生产执行,由品质监督。进行改善。同时在PE工程师无法处理时,则由工程部主管对异常情况进行分析及处理,同时上报至工程部经理。必要时组织相关部门开会讨论解决; B.设备异常:由车间设备维护人员或与相关人员一起对设备进行维修,维修完成后由生产车间责任人签署维修结果; C.物料异常:由物控部根据实际情况,调整生产计划,必要时组织相关部门开会讨论解决。 5.5如果出现严重异常时生产部主管应根据事故解决的可能性作出暂时停产或转产的决定; 5.6对可能影响生产进度的情况,由车间管理人员在异常发生后需以电话通知或在《生产异常处理联络单》注明知会物控部,物控部应按实际情况采取应急措施调整生产计划,对受影响交货的订单需及时通知销售部。 5.7 异常处理结束后,由承接部门印发《生产异常处理联络单》给相应部门,各负责人必须在承诺的时间内完成各部门应完成的事项。 5.8由于人为因素所造成的生产异常时,相关部门主管需对相关人员进行加强培训。 5.9生产恢复正常后,工程部应会同品质部、物控部应对异常问题在五个工作日内进行深层次的原因分析,并制定长期有效的预防措施,杜绝同样异常的再次发生。

品质异常处理流程及方法 摘要:品质人员的工作职责之一就是要及时发现反馈生产中的品质异常状况,并督促现场执行改善措施、追踪其改善效果,保证只有合格的产品才能转入下一道工序,生产出高质量的产品. 品质人员的工作职责 1、熟悉所控制范围的工艺流程 2、来料确认 3、按照作业指导书规定进行检验(首检、巡检) 4、作相关的质量记录 5、及时发现反馈生产中的品质异常状况,并督促现场执行改善措施、追踪其改善效果 6、特殊产品的跟踪及质量记录 7、及时提醒现场对各物料及成品明显标识,以免混淆 8、及时纠正作业员的违规操作,督促其按作业指导书作业 9、对转下工序的产品进行质量及标识进行确认 品质异常可能发生的原因 生产现场的品质异常主要指的是在生产过程中发现来料、自制件批量不合格或有批量不合格的趋势。品质异常的原因通常有: A. 来料不合格包括上工序、车间的来料不合格 B. 员工操作不规范,不按作业指导书进行、新员工未经培训或未达到要求就上岗 C. 工装夹具定位不准 D. 设备故障 E. 由于标识不清造成混料 F. 图纸、工艺技术文件错误。 品质异常一般处理流程 1、判断异常的严重程度(要用数据说话) 2、及时反馈品质组长及生产拉长并一起分析异常原因(不良率高时应立即开出停线通知单) 3、查出异常原因后将异常反馈给相关的部门 (1)来料原因反馈上工序改善 (2)人为操作因素反馈生产部改善 (3)机器原因反馈设备部 (4)工艺原因反馈工程部 (5)测量误差反馈计量工程师 (6)原因不明的反馈工程部 4、各相关部门提出改善措施,IPQC督促执行 5、跟踪其改善效果,改善OK,此异常则结案,改善没有效果则继续反馈 怎样做才能尽可能的预防品质异常 SPC是一款专门分析品质异常的工具,它主要是应用统计分析技术对项目过程进行实时监控,区分出过程中

[重点]设备异常处理流程及规定 设备异常处理流程 序流程图责任人表单作业内容号 班组长/线长不能处生产异常出现时,生产部门/设备生产异常理或异常会导致停产时间超过30分钟 1 相关部门/ 时,应立即上报,或开出《生产异常发现者报告单》进行处理。 生产部负责人接到报告后应在10分钟生产部门/内赶赴现场;必要时可同时通知相关相关人员 2 相关部门/ 部门负责人,相关部门负责人接到通赶赴现场负责人知后应在10分钟内赶到现场( 相关部门负责人到达现场后立即对异相关部门异常分析 3 常进行分析,若部门负责人不能到场负责人应在10分钟内派人到达现场( 如不能立即处理应作出是否停产的意确定是总经办/总4 见,并注明预计恢复生产的时间(停否停产经理产应由总经理批准( 相关部门负责人针对问题应在30分钟制定应急相关部门生产异常 5 内制定出应急处理措施,制定措施时处理措施负责人报告单应尽可能地降低影响生产部门生产异常生产部门按应急措施进行生产按照处理6 负责人报告单调整生产措施生产 生产部/品 质部 NG 应急措施的有效性由生产部与品质部生产异常责任人措施7 共同验证,如验证不符合则重新制定报告单验证相关措施( YES 验证结果符合生产及品质相关要求,生产部负责恢复正8 可以在恢复生产后由品质部和生产部人常生产对异常进行跟进确认(

相关责任部生产恢复正常后相关部门应对问题的生产异常 9 制定长期门深层次的原因加以分析,并在两个工报告单预防措施负责人作日内制定出长期预防措施( 生产部生产异常生产部应协同品质部对责任部门的长10 负责人报告单期预防措施执行结果进行跟踪预防措施跟踪 异常处理规定 1(目的 为了更好的规范和完善公司生产异常处理作业,使生产问题发生后,各部门人员迅速、有效的处理,减免停工时间,提高生产效率,特制定本流程。 2(适用范围 适用于公司所有生产异常的处理。 3(职责 3(1 生产部门负责生产异常的反馈和处理措施验证。 3(2 品质部负责品质异常的处理及验证。 3(3 设备组负责设备异常的处理。 3(4 计控部负责物料异常的处理。 3(5 技术部负责技术、关键工序设备、工装模具、工艺异常的处理。 4(作业规范 4.1 生产异常反馈 4.1.1 当生产发生异常或有出现异常的趋势时,生产部发现人员和现场管理人员(如班组长)应即时给予分析,并主动积极寻求解决方法,包括与相关人员联系,如能及时解决则不在本流程规定内。

提交方式: 把文件名改为学号姓名,提交文档和源码(只需提交最顶层包文件夹) 实验六异常处理 一、实验目的 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的异常和参数输入有误异常。源代码如下:

品质异常处理流程及方法Last revision on 21 December 2020

品质异常处理流程及方法 摘要:品质人员的工作职责之一就是要及时发现反馈生产中的品质异常状况,并督促现场执行改善措施、追踪其改善效果,保证只有合格的产品才能转入下一道工序,生产出高质量的产品. 品质人员的工作职责 1、熟悉所控制范围的工艺流程 2、来料确认 3、按照作业指导书规定进行检验(首检、巡检) 4、作相关的质量记录 5、及时发现反馈生产中的品质异常状况,并督促现场执行改善措施、追踪其改善效果 6、特殊产品的跟踪及质量记录 7、及时提醒现场对各物料及成品明显标识,以免混淆 8、及时纠正作业员的违规操作,督促其按作业指导书作业 9、对转下工序的产品进行质量及标识进行确认 品质异常可能发生的原因 生产现场的品质异常主要指的是在生产过程中发现来料、自制件批量不合格或有批量不合格的趋势。品质异常的原因通常有: A. 来料不合格包括上工序、车间的来料不合格 B. 员工操作不规范,不按作业指导书进行、新员工未经培训或未达到要求就上岗 C. 工装夹具定位不准 D. 设备故障 E. 由于标识不清造成混料 F. 图纸、工艺技术文件错误。

品质异常一般处理流程 1、判断异常的严重程度(要用数据说话) 2、及时反馈品质组长及生产拉长并一起分析异常原因(不良率高时应立即开出停线通知单) 3、查出异常原因后将异常反馈给相关的部门 (1)来料原因反馈上工序改善 (2)人为操作因素反馈生产部改善 (3)机器原因反馈设备部 (4)工艺原因反馈工程部 (5)测量误差反馈计量工程师 (6)原因不明的反馈工程部 4、各相关部门提出改善措施,IPQC督促执行 5、跟踪其改善效果,改善OK,此异常则结案,改善没有效果则继续反馈 怎样做才能尽可能的预防品质异常 是一款专门分析品质异常的工具,它主要是应用统计分析技术对项目过程进行实时监控,区分出过程中的随机波动与异常波动,了解每个工序有可能出现的品质异常、了解哪些工位容易出品质异常,从而对过程的异常趋势提出预警,以便及时采取措施,消除异常,恢复稳定,从而达到稳定过程,提高和控制质量的目的.

实验六异常处理 云南大学信息学院面向对象技术导论 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语句");

实验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"); } } }

品质异常处理流程及方法 This manuscript was revised on November 28, 2020

品质异常处理流程及方法 摘要:品质人员的工作职责之一就是要及时发现反馈生产中的品质异常状况,并督促现场执行改善措施、追踪其改善效果,保证只有合格的产品才能转入下一道工序,生产出高质量的产品. 品质人员的工作职责1、熟悉所控制范围的工艺流程2、来料确认3、按照作业指导书规定进行检验(首检、巡检)4、作相关的质量记录5、及时发现反馈生产中的品质异常状况,并督促现场执行改善措施、追踪其改善效果6、特殊产品的跟踪及质量记录7、及时提醒现场对各物料及成品明显标识,以免混淆8、及时纠正作业员的违规操作,督促其按作业指导书作业9、对转下工序的产品进行质量及标识进行确认 品质异常可能发生的原因 生产现场的品质异常主要指的是在生产过程中发现来料、自制件批量不合格或有批量不合格的趋势。品质异常的原因通常有:A. 来料不合格包括上工序、车间的来料不合格 B. 员工操作不规范,不按作业指导书进行、新员工未经培训或未达到要求就上岗C. 工装夹具定位不准 D. 设备故障E. 由于标识不清造成混料 F. 图纸、工艺技术文件错误。 品质异常一般处理流程1、判断异常的严重程度(要用数据说话)2、及时反馈品质组长及生产拉长并一起分析异常原因(不良率高时应立即开出停线通知单)3、查出异常原因后将异常反馈给相关的部门(1)来料原因反馈上工序改善(2)人为操作因素反馈生产部改善(3)机器原因反馈设备部(4)工艺原因反馈工程部(5)测量误差反馈计量工程师(6)原因不明的反馈工程部4、各相关部门提出改善措施,IPQC督促执行5、跟踪其改善效果,改善OK,此异常则结案,改善没有效果则继续反馈 怎样做才能尽可能的预防品质异常 是一款专门分析品质异常的工具,它主要是应用统计分析技术对项目过程进行实时监控,区分出过程中的随机波动与异常波动,了解每个工序有可能出现的品质异常、了解哪些工位容易出品质异常,从而对过程的异常趋势提出预警,以便及时采取措施,消除异常,恢复稳定,从而达到稳定过程,提高和控制质量的目 的.

实验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) {

品质异常处理操作规范集团公司文件内部编码:(TTT-UUTT-MMYB-URTTY-ITTLTY-

品质异常处理流程 文件编号:AW-QR-PZ003-2017 拟制:孟非非日期:2017年4月21日 审核:日期:2017年4月*日 品质异常处理流程 1.目的: 为规范质量文件体系,提高产品的可追塑性,更效的解决异常问题的重复发生,明确质量异常问题的处理流程,特制定此文件 2.范围: 公司质量体系所要求的第三阶文件记录表单,《品质异常处理单》、《不合格品处理单》、《纠正和预防措施单》等。公司各组织部门管理负责人及涉及人员 3.说明 A.品质异常内容属于内部异常时要求对原因分析及临时解决措施在4小时内给予答复, 永久措施和需要与客户、供应商进行沟通的最长可延长2个工作日 B.品质异常分为四级 缺陷:未满足与预期或规定用途有关的要求 A级致命缺陷影响安全的所有缺陷,会影响使用寿命的,造成产品失效故障的,造成产品组装困难的,造成下道工序混乱的缺陷难以纠正的情况都为致命缺陷 B级重大缺陷可能影响使用寿命的,易于修复的故障,对产品组装肯定会造成困难的,外观难以接受的,给下道工序造成较大困难的易于纠正的情况都为重大缺陷 C级一般缺陷不会影响产品的运行或运转,不会造成故障的起因,对外观影响较大,会对下道工序影响较大的,可能影响装配的情况都为一般缺陷

D级轻微缺陷对产品外观有影响,可能对下道工序有影响,其它方面不涉及有产品缺陷的情况都为轻微缺陷 C.三不原则 不生产不良品不流出不良品不接受不良品 D.四不放过原则 事故原因未查清不放过 事故责任人未受到处理不放过 事故责任人和相关人员未受到教育培训不放过 事故制订的整改措施没有落实不放过 4.职责 品质部对品质异常进行判定,并开出品质异常处理单 各责任部门对品质异常进行原因分析及提出纠正预防措施 品质部对评审结果进行综合判定给出最终判定结果,对让步接收的需由质量主管领导批准,需要时由总经理批准 品质部对不合格品的让步及纠正预防措施进行跟踪评价 5.流程 a)表头/异常描述栏 当生产品质异常发生时检验员依据实际情况填写品质异常处理单,表头部分和异常描述栏由检验员进行填写 b)检验员勾选异常来源属于哪一环节并填写相关数量 c)涉及外协采购时需写明供应商及订单号以便准确记录质量信息 d)在异常描述时写发现的客观现象,不能主观臆断。一般采作六何法来描述即何人何 时何地何物何法何因

相关文档