软件开发中异常处理

软件开发中异常处理
软件开发中异常处理

Exception Management

Architecture Guide

异常管理框架指南

1.异常管理

要架构一个结构良好、维护性高、富有弹性的应用系统就必须采用适当的异常管理策略。系统的异常管理必须包含以下功能:

●探测异常

●记录异常日志、发送信息

●产生异常事件,使外部系统能够监测和作出判断

要架构一个结构良好、维护性高、富有弹性的应用系统就必须采用适当的异常管理策略。系统的异常管理必须包含以下功能

1.1异常的层次结构

异常通常由应用程序(用户程序等)或运行库(公共语言运行库和应用程序运行库)引发的。Exception是所有异常类型的基类。当发生异常时,系统或当前正在执行的应用程序通过引发包含关于该错误的信息的异常来报告异常。异常发生后,将由该应用程序或默认异常处理程序进行处理。若干异常类都直接从Exception类继承,其中包括两种主要类型的异常类:1.ApplicationException

用户定义的应用程序异常类型的基类。ApplicationException继承Exception,但是不提供扩展功能,必须开发ApplicationException的派生类,以实现自定义异常的功能。

2.SystemException

预定义的公共语言运行库异常类的基类。

这两个异常类构成了几乎所有的应用程序和运行库异常的基础。

1.1异常处理过程

异常处理过程主要由“分析异常”和“处理异常”组成。应用系统中的方法(过程)都必须按照下述流程以确保被处理的异常信息中包含当前方法(过程)的上下文。

注:在方法(过程)产生了异常,进入“异常探测”代码块。“异常探测”和“异常传播”代码块中论述了异常的细节。当异常被传播到应用系统的边界(需要将异常信息反馈给用户)时,异常管理进入异常处理阶段,见下图:

注:为了维持异常的信息(information),通告(nofice)和用户体验/用户提示(user experience),异常处理进入了信息收集、日志记录、通告异常过程。

1.异常探测

.Net的公共语言运行库提供一种异常处理模型,该模型基于对象形式的异常表示形式,将程序代码和异常处理代码分到try 块和catch 块中。可以有一个或多个 catch块,每个块都设计为处理一种特定类型的异常,或者将一个块设计为捕捉比其他块更具体的异常。

try

{

// Some code that could throw an exception.

}

catch(SomeException exc)

{

// Code to react to the occurrence

// of the exception

}

finally

{

// Code that gets run always, whether or not

// an exception was thrown. This is usually

// clean up code that should be executed

// regardless of whether an exception has

// been thrown.

}

如果要处理在应用程序在执行期间某代码块发生的异常,则必须先该代码块放置在 try 块

中。 (try 语句中的代码是try 块), 并将处理由try 块引发的异常的应用程序代码放在 catch 语句中,称为catch块。零个或多个catch块与一个 try 块相关联,每个catch块包含一个确定该块能够处理的异常类型的类型筛选器。不管异常产生与否,应用程序都将进入finally块,通常要要执行一些clean up代码。

注:在try 块中出现异常时,系统按所关联 catch块在应用程序代码中出现的顺序搜索它们,直到定位到处理该异常的catch块为止。如果某catch块的类型筛选器指定了异常类型 T或任何派生由异常类型T派生的异常类型,则该catch块处理 T类型及其派生类型的异常。系统在找到第一个处理该异常的catch 块后即停止搜索。因此,在应用程序代码中处理某类型异常的catch块必须在处理其基类型的catch块之前指定,所以通常处理System.Exception 的catch 块最后指定。如果与try块相关联的所有catch块均不处理该异常,且当前try 块嵌套在其他try 块中,则搜索与上一级try块相关联的catch块。如果仍然没有找到用于该异常的catch 块,则将该异常沿调用堆栈向上传递,搜索上一个堆栈帧(当前方法的主调方法)来查找处理该异常的catch 块,并一直查找,直到该异常得到处理或调用堆栈中没有更多的帧为止。如果到达调用堆栈顶部却没有找到处理该异常的catch块,则由默认的异常处理程序处理该异常,然后应用程序终止。

当执行以下的特定操作时,应用程序需要捕获异常:

●搜集信息并记录日志

●为当前异常添加一些相关的信息

●执行clean up代码

●尝试将异常恢复(解决)

1.1适当使用异常

在应用程序设想以外出现的错误要使用异常,在应用程序设想内出现的错误一般不必使用异常”。

例如:某个用户登录应用系统,因为输入了错误的帐号或密码而无法登录,“登录失败”

已经在系统的预料之中,在这种情况下,没有必要使用异常管理。但是一个未预料到的错误就要捕获异常,如用户登录失败是数据库连接失败造成的。

另外,抛出一个异常的资源开销要比返回一个简单结果给函数(过程)调用者大并且过度使用异常会产生难以阅读和管理的代码,所以对于可控制的执行流,不要使用异常管理。

1.2运行时捕获异常

在特定新的环境下,应用系统抛出的异常将在运行时截获,而这些异常会牵涉到堆栈资源。例如:调用一个ArrayList中的存放的Objects进行排序方法的代码里使用了Object的CompareTo方法,该方法抛出了System.InvalidOperationException异常,另外在调用“反射”方法时还可能产生System.Reflection.TargetInvocationException异常,可以把这些异常设置成InnerException(内部异常属性)在运行时抛出。必须处理好这些异常,使得它们对应用系统带来最小的影响。详细内容请点击以下链接地址:

l Base Exception Hierarchy

l Common Exception Classes

l System.Exception Class

2.异常传播

以下有三种途径来传播异常:

●让异常自动传播

代码段可以故意忽略异常,当发生异常时,代码段停止执行,进入堆栈直至找到与当

前异常符合的堆栈地址。

●捕获抛出的异常

在代码段中捕获异常,然后在当前代码段中执行clean up或一些必要的过程代码。假如不能解决异常就将它抛给调用者。

●捕获、包装、抛出已包装的异常

从堆栈中传播出来的异常,往往缺乏类型相关性。而经过包装的异常返回给调用者,将更加可读、更具相关性。下图解释了异常捕获、包装和抛出的过程。使用这种途径,应用程序可以捕获异常,然后执行clean up或一些必要的过程代码。假如异常无法解决,就重新包装异常,并抛给函数(过程)调用者。设置InnerException属性可以使异常源包装成“内部异常”和带有上下文相关性的“外部异常”的新异常。InnerException属性设置可以在构造异常时进行。

当异常传播时,catch代码段只能捕获“外部异常”,通过InnerException属性可以访问内部异常。下面的代码描述了实现过程:

try

{

// Some code that could throw an exception.

}

catch(TypeAException e)

{

// Code to do any processing needed.

// Rethrow the exception

throw;

}

catch(TypeBException e)

{

// Code to do any processing needed.

// Wrap the current exception in a more relevant

// outer exception and rethrow the new exception.

throw(new TypeCException(strMessage, e));

}

finally

{

// Code that gets executed regardless of whether

// an exception was thrown.

}

注:第一个catch代码段捕获了TypeAException异常,执行一些必要的过程代码,然后将本异常抛给调用者。第二个catch代码段将TypeBException包装成具有上下文相关性新异常TypeCException,并作为外部异常抛给调用者。在这个例子中代码块只关心异常TypeAException和TypeBException,其他异常将自动向上传播。

以下是异常三种传播途径的优缺点比较:

1.1何时使用内部异常

异常最初传播只提供异常产生的精确原因,当异常抛给调用者时,它带有很少量的上下文相关性,此时需要这行异常包装。

例如:调用LoadUserInfo方法需要读取服务器的本地文件,假如文件不存在,代码段将抛出FileNotFoundException异常给调用者。但是在LogonUser方法中出现“文件无法找到”的异常,显然很难读,假如将FileNotFoundException包装成自定义异常FailedToLoadUserInfoException,在FailedToLoadUserInfoException中加入外部信息和上下文相关性,这样将更加符合LogonUser方法。

2.自定义异常

.Net Framework是通过异常类型来辨认异常的,应用程序建立源于ApplicationException 的层次结构的异常体系,如下图:

层次结构的自定义异常体系对应用系统带来以下好处:

●易于开发,因为通过继承派生异常可以扩充自己的属性

●当系统部署完毕时,仍然可以通过继承扩充新的自定义异常。无须更改已经写好

的异常处理代码,因为扩充的异常派生于基类异常,对基异常的处理也就是对它派

生的异常处理。

1.1设计层次结构异常

.Net Framework采用可扩展、层次结构的异常体系,假如合适的异常已经定义,就采用.Net Framework提供的异常。大部分应用程序的层次结构异常体系的组织需要平滑、分组,同时扩充新的属性和功能。

是否在应用系统中建立自定义异常,可以参照以下问题:

●在当前条件下是否存在异常?

出现在.Net Framework下的异常不必自定义异常。

●异常细节是否需要单独处理?

应该建议一个新的异常类,使得代码块能够捕获该异常,并进行明确地处理。这样排除

了处理一些非特殊的异常,通过逻辑判断来决定执行某个操作。

●是否要执行特殊的处理或在异常中加入信息?

可以新建一个“应用级的异常”类,根据特殊需要向异常中添加信息和功能。

通常将一个应用系统的异常层次结构存放在一个程序集中,这样应用程序可以添加引用,并且便于子定义异常类的管理与部署。

1.2建立自定义异常类

自定义异常类要有良好的命名习惯。以Exception结尾,并且要表达适当的意思,同时要提供以下三种构造函数的实现。

using System;

public class YourBaseApplicationException : ApplicationException

{

// Default constructor

public YourBaseApplicationException ()

{

// Constructor accepting a single string message

public YourBaseApplicationException (string message) : base(message)

{

}

// Constructor accepting a string message and an

// inner exception which will be wrapped by this

// custom exception class

public YourBaseApplicationException(string message,

Exception inner) : base(message, inner)

{

}

1.2.1建立派生于ApplicationException的自定义异常

所有的自定义异常都继承ApplicationException。一般在自定义异常中加入“异常出现时间”、“服务器名”、“运行帐号”等信息。将异常的细节压缩到一个基类异常中,通过继承提高自定义异常的可用性。

1.2.2远程访问自定义异常

异常类实现了ISerializable接口,通过序列化,异常将通过系统边界,被远程服务所访问。要实现远程访问,必须在类定义上加上[Serializable],同时要实现下面的构造函数:

protected YourBaseApplicationException(SerializationInfo info,

StreamingContext context) : base(info, context)

{

}

如果自定义异常中增加了一些字段属性,就必须要重写GetObjectData方法,并把相应的字段属性加载到SerializationInfo中,如下:

[Serializable]

public class ExampleException : ApplicationException

{

public ExampleException() : base()

{

}

public ExampleException(string message) : base(message)

{

}

public ExampleException(string message,Exception inner) :

base(message,inner)

}

protected ExampleException(SerializationInfo info, StreamingContext

context) :

base(info,context)

{

m_strMachineName = info.GetString("m_strMachineName");

}

public override void GetObjectData( SerializationInfo info,

StreamingContext context )

{

info.AddValue("m_strMachineName", m_strMachineName,

typeof(String));

base.GetObjectData(info,context);

}

private string m_strMachineName = Environment.MachineName;

public string MachineName

{

get

{

return m_strMachineName;

}

set

{

m_strMachineName = value;

}

}

}

通过自定义异常类的构造函数,异常中相应的字段属性通过SerializationInfo对象传递到远程服务器,通过SerializationInfo的GetValue方法来获取相关信息。详细内容请点击以下链接地址:

●.NET Framework Developer's Guide: Best Practices for Handling

Exceptions

●Handling and Throwing Exceptions

●Implementing ISerializable

●Serialization Sample

2.管理未经处理的异常

当一个未经处理的异常传播到应用程序和用户端的边界时,而系统无法解决异常。此时,为了管理异常与用户的通信,必须搜集信息、记录日志、发送通告、执行cleanup和必要的过程代码。在大多数基于Web的应用系统中,异常和终端用户的边界是靠Web页面或Web服务来控制的。下面将讨论在系统边界如何管理未经处理的异常。

https://www.360docs.net/doc/845804551.html,

https://www.360docs.net/doc/845804551.html,提供了一些特定的方法来管理异常和设置异常信息显示给终端客户的方式。

2.1.1设置Web.config

mode="on">

在customErrors中设置默认重定向页面,以下是三种设置模式:

●on

未经处理的异常将用户重定向到一个统一的默认页面。一般用于产品化模式。

●off

用户将会看到异常提示信息,而非重定向到统一默认页面。一般用于项目开发模式。●remoteonly

当用户通过“localhost”访问本地服务器时将会看到异常提示信息,而其他用户将重定向到一个统一的默认页面。一般用于Debug模式。

除了重定向到默认页面以外,也可以对某些HTTP错误代码设置特定的页面。例如,将所有的404、500错误定向到特定页面。

在.NET之前要实现上述定向,必须要设置IIS中的matabase。而https://www.360docs.net/doc/845804551.html,将所有的应用设置都集中到web.config中,通过xcopy就可以实现部署。

必须注意这些设置只对https://www.360docs.net/doc/845804551.html,文件有效(aspx、asmx),例如用户调用应用服务器上以htm、asp等为后缀的文件时,IIS将返回matabase上的HTTP错误设置,而非web.config上的设置。此时,必须将matabase和web.config的重定向页面设置一致。

2.1.2使用@ Page Directive

web.config将作用于当前目录和所有子目录,通过重写Page标识中的ErrorPage属性来设置特定的重定向页面,在下面的例子中,终端用户如果碰到了未处理的异常,将会跳转到customerror.aspx页面:

<%@ Page ErrorPage="customerror.aspx" %>

2.1.3处理https://www.360docs.net/doc/845804551.html,的异常

https://www.360docs.net/doc/845804551.html,提供了两种事件来处理代码中抛出的异常。

●Page_Error

当页面级存在无法解决的异常时,该事件将被激活。此时在代码里必须包含

Page_Error的事件句柄或者已经设置了@ Page Directive,Page_Error的事

件句柄代码如下:

Page.Error += new System.EventHandler(Page_Error);

●Application_Error

Application_Error事件的代码块在global.asax中,属于应用级。当一些特

殊页面中存在无法解决的异常时,该事件将被激活。应该在Application_Error

事件的代码块中设计到“日志记录”、“通告”、“必要的处理代码”,如下:

// In global.asax file

protected void Application_Error(Object sender, EventArgs e)

{

Exception exc = Server.GetLastError();

// Perform logging, send any notifications, etc.

}

注:Server.GetLastError方法获得当前未处理的异常对象,Server.ClearError方法清除当前未处理的异常对象并停止异常的传播。例如,应用程序的页面中Page_Error事件中应该包含Server.GetLastError方法来访问当前未处理的异常对象,假如此时不用

Server.ClearError方法清除异常,那么异常将传播到Application_Error事件中,假如不清除,将跳转到Web.config中设置的异常跳转页面。

详细内容请点击以下链接地址:

●https://www.360docs.net/doc/845804551.html, Homepage

Section

1.1Web服务

Web服务用Simple Object Access Protocol (SOAP)来传播异常有很很多局限性,.NET Framework提供了SoapException类来处理异常。当CLR收到来自client 的错误格式的SOAP请求时,自动抛出SoapException异常。

Web服务方法抛出的异常将被统一包装成SoapException异常,通过SOAP响应抛到Web服务的client,

2.搜集信息

应用系统必须捕获适当的异常信息,这些信息用来明确地描述异常环境。要做的就是将它们转化成容易接受的信息,而接受信息的角色包括以下几种:

●终端用户

需要获得有含义的、友好的信息

●应用系统开发者

需要了解更多关于异常的细节,为解决问题提供援助

●操作员

需要获得解决问题的相关信息和操作步骤

2.1捕获适当的信息

所有的角色都要收到与他们相关的信息,允许他们适当地处理问题。不要把所有的信息都抛给以上角色。例如:终端用户没有必要知道是那个方法(过程)的哪一行产生了何种异常。同样地,用户也非常讨厌看到“出现错误,请与管理员联系”等提示信息,显示给用户的异常信息应该是友好的,并且可以尝试指导用户纠正错误。下表显示了角色对异常信息的关注角度:

应用程序需要提供丰富的异常信息以确保可以将其裁减给各个角色,捕获到的异常要包含下表信息:

2.2访问异常数据

异常有各种各样的结构,通过捕获暴露出来的属性,系统得到产生异常的原因等信息。利用反射(详见System.Reflection名称空间),系统很容易地获得异常属性值,详细的异常信息引导开发人员找到异常源。详细内容请点击以下链接地址:

●Reflecting on Stack Traces

●System.Reflection Namespace

3.应用仪表

仪表嵌入程序,为特定的人员监控应用程序中提供数据。应用仪表是掌握系统执行状况和评估系统的好工具。企业仪表框架(EIF)提供弹性良好的方法来处理应用程序事件(包括异常),EIF利用event sources和event sinks将系统日志从通告发布中分离出来。但是在处理异常时我们往往需要提出日志(logging)和通告(notification)方案。

品质异常处理流程模板

品质异常处理流程 (公开文件,共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

Java语言提供两种异常处理机制

得到一个异常对象是,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。找到能够处理这种类型异常的方法后,运行时系统把当前异常交给这个方法处理;如果找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。捕获异常是通过try-catch-finally语句实现的。语法为:try{ ... }catch(ExceptionName1 e){ ... }catch(ExceptionName2 e){ ... } ... }finally{ ... } 2)声明抛弃异常:当Java 程序运行时系统得到一个异常对象时,如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃异常。声明抛弃异常是在一个方法声明中的throws子句中指明的。如:public int read() throws IOException{ ... } 其中throws IOException就是声明抛弃异常,throws后可以跟多个异常类型。 1. https://www.360docs.net/doc/845804551.html,ng.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话) 2. https://www.360docs.net/doc/845804551.html,ng.classnotfoundexception 这个异常是很多原本在jb等开发环境中开发的程序员,把jb下的程序包放在wtk下编译经常出现的问题,异常的解释是"指定的类不存在",这里主要考虑一下类的名称和路径是否正确即可,如果是在jb下做的程序包,一般都是默认加上package的,所以转到wtk下后要注意把package的路径加上。 3. https://www.360docs.net/doc/845804551.html,ng.arithmeticexception 这个异常的 好好检查一下自己程序中涉及到数学运算的地方,公式是不是有不妥了。 4. 是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常。 5. https://www.360docs.net/doc/845804551.html,ng.illegalargumentexception 这个异常的解释是"方法的参数错误",很多j2me的类库中的方法在一些情况下都会引发这样的错误,比如音量调节方法中的音量参数如果写成负数就会出现这个异常,再比如g.setcolor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。 6. https://www.360docs.net/doc/845804551.html,ng.illegalaccessexception 这个异常的解释是"没有访问权限",当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了package的情况下要注意这个异常。其他还有很多异常,我就不一一列举了,我要说明的是,一个合格的程序员,需要对程序中常见的问题有相当的了解和相应的解决办法,否则仅仅停留在写程序而不会改程序的话,会极大影响到自己的开发的。关于异常的全部说明,在api里都可以查阅。算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:ArrayIndexOutOfBoundsException 违背安全原则异常:SecturityException 文件已结束异常:EOFException 文件未找到异常:FileNotFoundException 字符串转换为数字异常:NumberFormatException 操作数据库异常:SQLException 输入输出异常:IOException 方法未找到异常:NoSuchMethodException https://www.360docs.net/doc/845804551.html,ng.AbstractMethodError 抽象方法错误。当应用试图调用抽象方法时抛出。https://www.360docs.net/doc/845804551.html,ng.AssertionError 断言错。用来指示一个断言失败的情况。https://www.360docs.net/doc/845804551.html,ng.ClassCircularityError 类循环依赖错误。在初始化一个类时, 个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。https://www.360docs.net/doc/845804551.html,ng.Error 错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一些不应被应用程序捕获的反常情况。https://www.360docs.net/doc/845804551.html,ng.ExceptionInInitializerError 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异

产品质量异常处理流程精

供应商来料异常管理流程 1. 目的: 规范来料产品的异常处理流程控制,提高来料合格率。 2. 范围: 本规范适用于所有外购零部件及外包加工件。 3. 职责与权限: 3.1生技部:负责检测治具的制作。 3.2质量中心:负责来料异常的提出、分析、处理。 3.3生产部:负责来料异常协助处理。 3.4研发部:负责来料异常的分析、处理。 3.5生管部:负责确认来料品上线使用时间。 3.6采购部:负责来料异常与供应商的纠通取得异常的处理。 4. 名词定义: 4.1不合格:未满足产品的质量要求。 4.2 A类:单位产品的极重要质量特性不符合规定,或者单位产品的质量特性极严重不符合规定。 4.3 B类:单位产品的重要质量特性不符合规定,或者单位产品的质量特性严重不符合规定。 4.4 C类:单位产品的一般质量特性不符合规定,或者单位产品的质量特性轻微不符合规定。 5、异常处理流程控制 5.1 IQC依据检验指导书、封样、评估报告等资料检验,发现来料品不满足质量要求。 5.2 IQC将自已判定为不合格的产品经工程师、部门主管核对确实为不合格品。 5.3 IQC 立即填写《供应商异常矫正单》进行处理。 5.4 质量中心主管主导组织针对异常讨论,参与人员:采购、PIE、质量中心经理、研发工程师、研发总监、厂部厂长及其相关人员。 6、异常分类: 6.1 外观不良:表面有划痕、水印、字体不清、表面气泡、砂眼、黑点、缺料、油污、毛刺、变形、色差、氧化及电镀层脱落、标识规格错误、无料号贴纸、无出厂检验报告等。 6.2性能不良:尺寸与图纸不符、适配过大,过小、色温,波长,亮度不符、电压,电流不符等。 7、异常处理方式 7.1将不良品返回供应商进行返工、返修、报废等。

品质异常处理流程47897

QG XXXXXX有限公司管理规范 XXXXX 品质异常处理流程 编制部门:品质部 编制: 审核: 批准: 2016-03-01发布 2016-03-01实施 XXXXXX有限公司发布

修订标记页: 1目的

为了使品质异常发生时处理过程有据可依有规可循,使重大品质异常能在规定的时间内得到有效改善,防止相同问题重复发生,降低品质成本,确保产品质量符合需求; 2适用范围 适用于本公司质量/环境管理体系运行中出现的不合格项及潜在不合格项。 3内容 3.1品质异常处理流程图 3.2流程图说明: 3.2.1生产过程中,一线作业人员或巡检员发现品质异常及时通知车间主任或者品质部,由品质部巡检员填写异常情形并反馈给品质部主管。 3.2.2《品质异常报告》的填写必须清楚地写明事件发生的日期、时间、地点、批量数、批号、异常数量、不良率、异常状况的描述。

3.2.3品质部主管对异常的现象进行初步确认,并在《品质异常报告》确认,然后组织制造部主任、技术部主管对异常进行分析处理。 3.2.4分析分别从“人、机、料、法、环、测”,“人、机、环”由制造部负责,“料、测”由品质部负责,“法”技术部负责。需在48小时内对原因进行分析及给出临时方案,如48小时完成不了,需上报上级经理给予协助处理,现场原因分析清楚后,各部门针对生产实际状况制订临时方案,(临时方案里面必须包括仓库原材料库存,生产在制品,成品的处理),并将临时方案填写至《品质异常报告》中。 3.2.5各部门(品质、制造、技术)对临时方案进行评审确认是否可行,(当异常为来料不良时,才需采购对此加工方案进行评审),由发生部门将各部门意见填入《品质异常处理单》,临时方案包括报废、让步接收、挑选、返修。 3.2.6制造部按照评审合格的的方案进行实施。由技术部对异常临时解决方案进行指导,品质部持续跟踪处理结果是否可行,一周内完成临时方案。 3.2.7品质部主管按照分析的原因分析找到相关责任部门,要求72小时(采购部因需与供应商沟通,可与品质部协商延长此时间,但需在报告上注明)给予出纠正预防措施(涉及到来料问题,需采购联系供应商解决,品质部QE对供应商回复进行跟进验证)。两周内完成纠正预防措施,各部门任何纠正措施要求有相关记录,无记录一律按未改善处理。 3.2.8品质部依《品质异常报告》进行跟踪验证、确认效果。连续三批有明显改善、无异常,结案。“人、机、环”由制造部负责,“料、测”由品质部负责,“法”技术部负责,将相关改善方案标准化。 4考核规定 4.1 责任人员需要在规定时间内完成相关品质异常处理的推进,品质部有权利对责任人进行考核,考核标准为超过期限没有整改每延迟一天考核10元,有特殊情况需延期的需要提前说明原因,得到直接领导的同意后可免除考核,同时需明确最终整改完成日期; 4.2整改过程中,需做好整改记录,并通知品质跟踪,否则视为无整改,跟踪需要有相关对比数据,否则对责任人员进行考核每次30元; 4.3对于在整改过程中提出比较有突破或建设性建议意见并被采纳实施,可以有效避免质量问题的再次发生,可由品质部或车间管理者向公司申请20—200元/人次经济或物质的奖励; 4.4以上考核由品质部出具相关考核通报,并交由公司品质部分管领导批准后转发行政部通报全公司并备案。

java异常处理例题代码

App9_1.java:输出一个数组的所有元素,捕获数组下标越界异常和除娄为0异常。public class App9_1{ public static void main(String args[]){ int i; int[] a={1,2,3,4}; for(i=0;i<5;i++) System.out.println(" a["+i+"]="+a[i]); System.out.println("5/0"+(5/0)); } } App9_2.java:使用try-catch-finall语句对程序中的异常进行捕获与处理。 public class App9_2{ public static void main(String args[]){ int i; int a[]={1,2,3,4}; for (i=0;i<5;i++){ try{ System.out.print("a["+i+"]/"+i+"="+(a[i]/i)); } catch(ArrayIndexOutOfBoundsException e){ System.out.print("捕获到了数组下标越界异常"); } catch(ArithmeticException e){ System.out.print("异常类名称是:"+e); //显示异常信息 } catch(Exception e){ System.out.println("捕获"+e.getMessage()+"异常!"); //显示异常信息 } finally{ System.out.println(" finally i="+i); } } System.out.println("继续!!"); } } App9_3.java:使用throw语句在方法中抛出异常。 public class App9_3{ public static void main(String args[]){ int a=5,b=0; try{ if (b==0) throw new ArithmeticException(); //抛出异常,不是必须的 else System.out.println(a+"/"+b+"="+a/b); //若不抛出异常,则运行此行

异常处理流程

异常处理流程及注意事项 1.发现不良; (1)确认所采用标准的完整性和有效性; (2)熟练掌握检验所涉及之相关标准或其他文件; (3)严格按抽样标准取样,注意均匀,来料检验须注意来料的不同时间,批号,生产班次等; (4)了解以往的品质状况及其品质履历; (5)掌握品管之检验技巧; 2.标示,区分,隔离; (1)标示,隔离须涉及到具体的不良品和可疑批次,不合格标示要完整且必要时要口头或书面知会先相关人员,以避免他人 混淆误用为原则; (2)不合格标示,隔离须注明不合格原因,检验员,检验日期,进料检验另须注明检验单号,并知会相关人员; 3.初步分析判断,并知会相关单位及现场领导; (1)确定不良等级,异常比率,影响度和影响面,必要时须及时知会相关单位之人员; (2)针对制程或成品类异常,要及时研拟临时对策; (3)进料之异常可能涉及组装或功能之不良,需通过试组装来确定其严重性和影响度,必要时可请工程部帮忙确认; 4.异常提报; (1)异常提报时要注意时效性和准确性,异常单的填写需准确完

整,成品异常要确认追溯批号,PO#与数量; (2)须标示和提供不良品; (3)会签的填写和勾选须正确完整; 5.跟催各相关单位签单状况,根据会签结果处理异常; (1)品管必须跟催会签状况,有迟迟未签之单位必须及时跟催,如多次跟催无效,可请领导协助,以避免异常处理的时效; (2)有签核S物料时,按S物料作业流程处理,并将处理结果维护到异常单中; (3)当物料急上线,且部门领导有同意采用,而高级主管又不在厂内,无法立即签核S单时,可询问品质经理,先输S物料, 以便后续作业; (4)当会签单位处理意见不一致时,需反映部门领导,并确认最终处理结果; 6.确认处理结果; (1)全检或重工后的,需重新确认品质状况,成品类有拆箱之异常,需填写成品不合格处置报表; (2)S物料须对其品质进行跟踪,有异常要及时提报; 7.追踪改善措施; (1)注意改善措施回文必须由责任单位之领导签核,并且要在7个工作日内完成改善措施回文; 8.确认改善结果; (1)评估改善措施之有效性,必要时须修改相关品质系统文件或

java异常处理试题及答案

异常处理练习题 一、选择题 1.java中用来抛出异常的关键字是 (C) A、try B、catch C、throw D、finally 2.关于异常,下列说法正确的是(A) A、异常是一种对象 B、一旦程序运行,异常将被创建 C、为了保证程序运行速度,要尽量避免异常控制 D、以上说法都丌对 3.(A)类是所有异常类的父类。 A、Throwable B、Error C、Exception D、AWTError 4.java语言中,下列哪一子句是异常处理的出口(C) A、try{…}子句 B、catch{…}子句 C、finally{…}子句 D、以上说法都丌对 5.下列程序的执行,说法错误的是 (C) 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.下列程序的执行,说法正确的是(D) 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.下面程序抛出了一个“异常”并捕捉它。请在横线处填入适当内容完成程序。class TrowsDemo { static void procedure() throws IllegalAccessExcepton { System.out.println(“inside procedure”); throw__new_____IllegalAccessException(“demo”);

品质异常处理流程及方法

品质异常处理流程及方法 摘要:品质人员的工作职责之一就是要及时发现反馈生产中的品质异常状况,并督促现场执行改善措施、追踪其改善效果,保证只有合格的产品才能转入下一道工序,生产出高质量的产品. 品质人员的工作职责 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是一款专门分析品质异常的工具,它主要是应用统计分析技术对项目过程进行实时监控,区分出过程中

Java中异常处理

第13章异常课堂练习(2理论+2习题课+2上机) 【教学目标】 ?了解异常和异常处理的概貌(第13.2节)。 ?探究使用异常处理的优点(第13.3节)。 ?区别异常的类型:Error (致命的) 和Exception (非致命的), 以及必检和免检异常(第13.4节)。 ?在方法头中声明异常(第13.5.1节)。 ?在方法中抛出异常(第13.5.2节)。 ?编写try-catch 块处理异常(第13.5.3节)。 ?解释异常是如何传播的(第13.5.3节)。 ?在try-catch块中使用finally子句(第13.6节)。 ?只为非预期错误使用异常(第13.7节)。 ?在catch 块中重新抛出异常(第13.8节)。 ?创建链式异常(第13.9节)。 ?定义自定制的异常类(第13.10节)。 【教学重点】 ?了解异常的处理机制 ?异常的解决方法 ?Exception类的作用及其使用方法 ?必检异常、免检异常的特点 【基本知识点】 1、常见异常演示 (1)算数异常:https://www.360docs.net/doc/845804551.html,ng.ArithmeticException 在算术运算中,0作为除数时,系统将产生该异常,示例: public static void main(String[] args) { int x=10; int y=0; int m=x/y; } Exception in thread "main" https://www.360docs.net/doc/845804551.html,ng.ArithmeticException: / by zero at exception.NotChecketException.main(NotChecketException.java:7)(2)数组越界异常:https://www.360docs.net/doc/845804551.html,ng.ArrayInd exOutOfBoundsException 在数组下标越界时,将产生该异常,示例:

品质异常处理流程

品质异常处理流程 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

品质异常处理流程 1.目的 为了使品质异常发生时,处理过程有据可依,使重大品质异常在规定的时间内得到有效改善,防止相同的问题重复发生,降低品质成本,确保产品质量符合要求。 2. 适用范围 适用于公司制程控制。 3. 名词释义 品质异常:因制程中出现了品质问题而导致的异常,也称制程异常。 停机:生产线生产出的产品不符合规定要求时或生产线不具备开机条件而已开机时,作停机处理,并下发《品质异常反馈单》。 4. 职责 检验科负责品质异常的反馈与跟进。 责任部门负责对品质异常进行分析、改善与预防及不良品的处理。 5. 作业流程 品质异常问题分类

异常问题处理流程 5.2.1当出现以上异常情况时,QC迅速对已发现的问题品作好标识并隔离。 5.2.2问题反馈 5.2.2.1发现人员或QC立即向上级或责任部门报告。 5.2.2.2根据本流程的要求填写《品质异常反馈单》并传递到责任部门。 5.2.2.3一般情况发《品质异常反馈单》即可,若某一问题多次发生,或问题较 严重,可能会导致批量不合格或客户重大投诉时。检验科发出《纠正和预防措施处理单》,要求责任部门改善。 5.2.3异常问题处理 5.2.3.1当缺陷不影响产品的性能(上表不需停机的问题),仅外观不良、非关键 尺寸超差时或问题未最终确认时,在得到检验科长级或厂长同意后,不需要停机,可进一步确认或执行在线分选。 5.2.3.2当生产线出现异常时(上表中需停机的问题),相关人员参照本流程的要 求,暂停有问题的机器或工位的操作。 5.2.4停机的时机 5.2.4.1 出现上表中需要停机时,QC直接下达停机指令,即上述表中所致A类问 题,员工/主操/领班应主动停机。 5.2.4.2 出现需要停机时,QC直接下达停机指令,相关部门不执行的,QC领班 跟进处理。即上升为B类问题。 5.2.4.3 出现需要停机时,QC及 QC领班先后要求停机,相关部门仍不执行的, 及时反馈到检验科长,由检验科长跟进处理,即上述的C类问题。 5.2.5纠正行动 5.2.5.1责任部门收到《品质异常反馈单》后,应立即组织改善,对品质异常问 题进行改进。 5.2.5.2停机后,QC领班、生产领班必须在10分钟内到达事发现场,对存在问 题进行分析,并提出改善措施。

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的异常和参数输入有误异常。源代码如下:

制程异常处理流程91589

1.目的 规定当制程出现异常时的处理流程及各相关部门的责任,使异常能够得到及时解决,确保生产正常运行。 2.适用范围 适用于制程出现异常时的处理。 3.定义: 无。 4.职责 4.1各生产车间:当生产过程中制程出现异常时发出《不合格品报告单》通知IPQC 4.2 品质部IPQC:对制程异常现象进行确认,并通知QE或PE来现场进行原因分析与处理 4.3品质部QE:对制程异常进行原因分析并确认责任部门,并对责任部门制订的改善对策进行验证4.4工程部PE:对功能及结构性制程异常进行原因分析并确认责任部门 4.5责任部门:负责制定异常的临时对策与永久对策并实施。 5.作业程序 5.1制程异常发出的时机: 5.1.1 当同一不良现象重复出现且不良率超出备损率时; 5.2 制程异常的发出、确认及通知: 5.2.1由车间生产线根据不良现象与事实填写《不合格品报告单》,填写内容包括:订单号、产品 型号、生产数量、不良数量、不良率、提出部门、提出时间、订单交期、不良现象描述。经车间主管(经理)审核后给车间IPQC确认; 5.2.2 IPQC在收到车间发出的《不合格品单》后,对异常现象、不良数量、不良率进行确认,并将 确认结果填写在“IPQC确认”栏。如果确认结果与车间填写的内容不相符时,可退回车间重新填写。 5.2.3 IPQC确认后以电话形式通知以下人员到发生异常的现场进行原因分析: 5.2.3.1 如果就是外观异常,电话通知制程QE工程师到现场进行原因分析; 5.2.3.2如果就是功能与结构性异常,电话通知QE工程师与工程部PE工程师到现场进行原因 分析; 5.2.3.3如果电话联络不到相关产品的QE工程师或PE工程师时应通知其直接上司做出相应 安排。 5.3原因分析: 5.3.1制程QE工程师与PE工程师接到通知后,应在第一时间到异常发生的车间现场进行确认与 原因分析。 5.3.2问题分析时应运用5WHY、5M1E、8D、QC七大手法、IE手法等问题分析技术分析异常 的根本原因(Root Cause),根据根本原因确认责任部门及提出临时对策。

最新java异常处理作业(1113132845)

Java异常处理作业 孙月巧 1、参考下面的程序,试修改程序,捕获相关异常,使得程序能正常运行。【提示:用错误数据测试,即可得到异常类名,运行时主方法参数输入abc 测试】 package November; import java.util.Scanner; public class StringIndexOutOf{ public static void main(String args[]){ System.out.println("请输入一个字符串:"); try{ Scanner reader=new Scanner(System.in); String str = reader.nextLine(); System.out.println("第四个字符为 " + str.charAt(3)); int aa = Integer.parseInt(str); System.out.println("平方为 " + aa * aa); } catch(StringIndexOutOfBoundsException e){ System.out.println("您输入的数值下标越界"); } catch(NumberFormatException nfe){ System.out.println("您输入的不是数字"); } } } 2、从命令行得到5个整数,放入一整型数组,然后打印输出,要求:如果输入数据不为整数,要捕获Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参数不足5个的异常(数组越界),显示“请输入至少5个整数”。 package November; public class Test2 { public static void main(String[] args) { System.out.println("请输入五个整数:"); try {

品质异常处理流程

品质异常处理流程 1 目的: 为了使品质异常发生时处理过程有据可依有规可循,使重大品质异常能在规定的时间内得到有效改善,防止相同问题重复发生,降低品质成本,确保产品质量符合本公司或客户需求2 范围: 来料检验、制程控制、出货检验 3 定义:重大品质异常是指品质问题严重有必要开具《品质异常报告》,并由品质部进行特别跟进的质量事件 3.1来料检验 3.1.1当进料检验需要品质工程师确认时开具《品质异常报告》 3.2制程控制 3.2.1 制程外观不良达10%时开具《品质异常报告》 3.2.2 制程组装不良达8%时开具《品质异常报告》 3.2.3 制程性能不良达3%时开具《品质异常报告》 3.2.4 制程条件不能满足工艺需求而导致停线开具《品质异常报告》. 3.2.5 制程连续3天重复出现的品质问题开具《品质异常报告》 3.3出货检查 3.3.1 出货检查外观不良达5%时开具《品质异常报告》 3.3.2 出货检查性能不良达2% 时开具《品质异常报告》 3.3.3 出货检查连续3天同一款产品重复出现同一个的品质问题开具《品质异常报告》 备注:以上描述的不良范围每个月月底按照品质异常汇总进行修订,逐步强化。 4 运作流程: 4.1 在生产过程中,当作业人员发现产品出现品质异常时第一时间通知生产组长确认,由生产组长开出《品质异常报告》给到生产主管确认后交予生产文员进行编档之后交品质工程师。 4.2《品质异常报告》的填写必须清楚地写明事件发生的日期、时间、地点、批量数、批号、异常数量、不良率、异常状况的描述 4.3 品质工程师对异常的现象进行初步确认,并在《品质异常报告》签收,然后找到PIE,由PIE对异常进行分析处理。 4.4 PIE接到《品质异常报告》后,需在一个小时内对原因进行分析及给出临时方案,如一个小时完成不了,需上报上级主管给予协助处理,现场原因分析清楚后,PIE针对生产实际状况制订临时方案,临时方案里面必须包括仓库原材料库存,生产在制品,成品的处理,并将临时方案填写至《品质异常报告》中; 4.5 由PIE,品质,采购对临时方案进行评审确认是否可行,如异常是设计或者制程不良时,无需采购对临时方案进行评审,当异常为来料不良时,才需采购对此加工方案进行评审)。 4.6 生产部按照评审合格的的方案进行实施。由PIE对异常临时解决方案进行指导,品质部持续跟踪处理结果是否可行。 4.7 品质工程师按照PIE给出的原因分析找到相关责任部门,要求半个工作日内(采购部因需与供应商沟通,可与品质部协商延长此时间,但需在报告上注明。)给予出长期纠正预防措施。(涉及到来料问题,需采购联系供应商解决,并由PIE及品质工程师对供应商回复进行跟进验证). 4.8 品质工程师依《品质异常报告》进行跟踪验证、确认效果 4.8.1 责任部门是否在规定时限内实施改进措施 4.8.2责任部门是否在规定时限内完成改进措施

[重点]设备异常处理流程及规定

[重点]设备异常处理流程及规定 设备异常处理流程 序流程图责任人表单作业内容号 班组长/线长不能处生产异常出现时,生产部门/设备生产异常理或异常会导致停产时间超过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 当生产发生异常或有出现异常的趋势时,生产部发现人员和现场管理人员(如班组长)应即时给予分析,并主动积极寻求解决方法,包括与相关人员联系,如能及时解决则不在本流程规定内。

Java异常处理总结(精)

Java 异常处理总结 找到一个关于异常总结的很详细的文章, 分享下. 异常在我们编程中很重,在适当的位置,合理的处理或者抛出异常,对程序来说至关重要。转:异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C 开始,你也许已经知道如何用if...else... 来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地方出现,那么你每个地方都要做相同处理,感觉相当的麻烦! Java 语言在设计的当初就考虑到这些问题,提出异常处理的框架的方案,所有的异常都可以用一个类型来表示,不同类型的异常对应不同的子类异常(这里的异常包括错误概念),定义异常处理的规范,在1.4版本以后增加了异常链机制,从而便于跟踪异常!这是Java 语言设计者的高明之处,也是Java 语言中的一个难点,下面是我对Java 异常知识的一个总结,也算是资源回收一下。 一、Java 异常的基础知识 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误https://www.360docs.net/doc/845804551.html,ng.Error ;如果你用System.out.println(11/0,那么你是因为你用0做了除数,会抛出https://www.360docs.net/doc/845804551.html,ng.ArithmeticException 的异常。有些异常需要做处理,有些则不需要捕获处理,后面会详细讲到。天有不测风云,人有旦夕祸福,Java 的程序代码也如此。在编程过程中,首先应当尽可能去避免错误和异常发生,对于不可避免、不可预测的情况则在考虑异常发生时如何处理。 Java 中的异常用对象来表示。Java 对异常的处理是按异常分类处理的,不同异常有不同的分类,每种异常都对应一个类型(class ),每个异常都对应一个异常(类的)对象。 异常类从哪里来?有两个来源,一是Java 语言本身定义的一些基本异常类型,二是用户通过继承Exception 类或者其子类自己定义的异常。Exception 类及其

品质异常处理流程及方法

品质异常处理流程及方法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实验报告5 异常处理实验

中南财经政法大学武汉学院实验报告 实验课名称:__JAVA语言____ 学生姓名:_______ 专业班级:__网络工程1104 学号:11071125__ 开课时间:___2013年2月26日_ 教务处制

《Java程序设计基础》实验报告 实验序号:05实验项目名称:异常处理 学号11071125姓名专业、班级 实验地点计-202指导教师时间2013-5-14一、实验目的及要求 了解异常处理机制; 了解异常的概念; 掌握抛出异常、捕获异常和异常处理的方法; 了解自定义异常类的定义和使用方法。 二、实验设备(环境)及要求 1、Windows-XP操作系统 2、Eclipse应用程序 三、实验内容与步骤 编写一个类ExceptionTest1,在main方法中使用try、catch、finally: ①在try块中,编写被0除的代码。 ②在catch块中,捕获被0除所产生的异常,并且打印异常信息。 ③在finally块中,打印一条语句。 四、实验结果与数据处理 import java.util.*; public class ExceptionTest1{ public static void main(String[]args){ Scanner in=new Scanner(System.in); try{ System.out.print("请输入被除数:"); double beichushu=in.nextDouble(); System.out.print("请输入除数:"); double chushu=in.nextDouble(); if(chushu==0) throw new ArithmeticException("请输入不为0的数字!"); double i=(beichushu/chushu); System.out.println("二者的商为:"+i);}catch(InputMismatchException e1){ System.out.println("请输入数字!");

相关文档
最新文档