《异常的捕获及处理》PPT课件
异常处理流程PPT(共24页)
•
2、孤单一人的时间使自己变得优秀,给 来的人 一个惊 喜,也 给自己 一个好 的交代 。
•
3、命运给你一个比别人低的起点是想告 诉你, 让你用 你的一 生去奋 斗出一 个绝地 反击的 故事, 所以有 什么理 由不努 力!
•
Hale Waihona Puke 4、心中没有过分的贪求,自然苦就少。 口里不 说多余 的话, 自然祸 就少。 腹内的 食物能 减少, 自然病 就少。 思绪中 没有过 分欲, 自然忧 就少。 大悲是 无泪的 ,同样 大悟无 言。缘 来尽量 要惜, 缘尽就 放。人 生本来 就空, 对人家 笑笑, 对自己 笑笑, 笑着看 天下, 看日出 日落, 花谢 花开, 岂不自 在,哪 里来的 尘埃!
2 客訴異常處理流程
➢ 客戶端製程問題
告知SQE此問題Heisei不會造成此問題的發生。
2 客訴異常處理流程
➢ HEISEI製程漏失問題
1.安排人員進行重工客戶端的庫存及厰内的庫存; 2.清查客戶端及廠內庫存回報主管 ; 3.如須重工須與PE確認重工手法、重工批量與物料確認待重工 數量; 4.如須重工須與PE確認重工手法、重工批量與物料確認待重工 數量; 5.如需安排人員外出重工﹐須安排車輛接送重工人員; 6.每日重工結果須填寫Sorting單回報給主管.
❖ a.人 ❖ b.機 ❖ c.料 ❖ d.法
二.原因分析
三.QIT會議討論
❖ 會議中含人、事、時、地、物、數據化、 為 什么(質疑)
❖ a.相關人員通知 ❖ b.不良資料(照片或實物) ❖ c.會議記錄 ❖ d.重工不良率 ❖ e.異常單開出
四.追蹤會議結果
❖ 追求時效追根究底落實執行 ❖ a.SIP/SOP更改 ❖ b.品質異常履歷記錄 ❖ c.人員教育訓練 ❖ d.會議結論追蹤 ❖ e.異常單收回
第5章 异常处理与常用类PPT教学课件
2020/12/10
10
异常的处理
▪ 在Java程序里,异常对象是依靠try/catch语 句来捕获和处理的。
▪ 在Java程序里,可以处理多个异常,只要包含 多个catch语句即可。
▪ catch块的排列顺序应按照特殊到一般的顺序 排列。
2020/12/10
11
异常处理示例
class ArithmeticExceptionDemo {
}
System.out.println("在捕获语句后执行的一个语句");
}
}
2020/12/10
12
多异常处理示例
class MutiCatchExceptionDemo {
public static void main(String[] args)
{
int zeBiblioteka o,aInt;try{ int a=args.length;
}
2020/12/10
8
用户自定义的异常
用户自定义异常用来处理程序中可能产生的逻 辑错误,使得这种错误能够被系统及时识别并 处理,而不致扩散产生更大的影响,从而使程 序有更好的容错性,更为强壮,并能使整个系 统更加安全稳定。
创建自定义异常时,需要:
➢ 声明一个新的异常类,从Exception派生。 ➢ 为新的异常类定义属性和方法。
MalformedURLException //URL格式错误
2020/12/10
7
系统运行异常示例
class ExceptionDemo{ public static void main(String[] args){ String s="123.456"; methodA(s); } static void methodA(String s){ Integer I=new Integer(s); System.out.println(I); }
第6章-异常处理ppt课件(全)
6.1 了解异常
❖ 任务3:了解异常类常用的方法 【任务内容】了解异常类常用的方法 【能力目标】掌握异常类常用的方法
public class ExceptionDemo { public static void main(String[] args) { String strPrice = "20"; try { //进行数据类型转换时,parseFloat方法有可能出现异常 float fprice = Float.parseFloat(strPrice); } catch (NumberFormatException nfe) { System.err.println("Exception:" + nfe.getMessage()); System.err.println("Exception:" + nfe.toString()); nfe.printStackTrace(); } }
❖
}
❖ catch( ArithmeticException e )
❖
{ System.out.println("\t捕获异常: "+e);
}
❖ catch( ArrayIndexOutOfBoundsException e )
❖
{ System.out.println("\t捕获异常:"+e.getMessage( )); }
程序中的错误可能来自于编译错误和运行错误。 编译错误是由于所编写的程序存在语法问题,未 能通过由源代码到目标代码的编译过程而产生的 错误,它将由语言的编译系统负责检测和报告; 运行错误是在程序的运行过程中产生的错误。
《异常处理》PPT课件
不能加载所需的类
许多ng异常的基类
ArithmeticException
算术异常,如:除数为0
IllegalArgumentException
方法接收到非法参数
ArrayIndexOutOfBoundsException
数组下标越界
NullPointerException
访问空引用
ClassNotFoundException
《异常处理》PPT课件
本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学” 习如果完十请年前自S行un没删有除做J,av谢a,人谢们便!会写.Net程序,如果他们写.Net程序,他
什么是异常
• 程序中出现的错误被称为异常 • 异常可分为两大类:编译时异常和运行时异常 • 编译时异常一般是指语法错误,可以通过编译器的提示加以
修正,这里我们不予讨论 • 运行时异常包括:
运行错误:如数组下标越界,除数为0等 逻辑错误:如年龄超过200岁等
” 如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他 们就是为windows写程序,而不是为Sun的设备写程序” ——Scott McNealy(Sun首席执行官)
本章目标
• 理解异常的概念 • 运用try块、catch块和finally块处理异常 • Java中异常类的继承体系构造 • 运用多重catch块处理异常 • 运用嵌套try/catch块处理异常 • 运用关键字throw和throws处理异常 • 用户自定义异常
” 如果十年前Sun没有做Java,人们便会写.Net程序,如果他们写.Net程序,他 们就是为windows写程序,而不是为Sun的设备写程序” ——Scott McNealy(Sun首席执行官)
Java中异常的捕获与处理
Java中异常的捕获与处理⼀、Java异常简介什么是异常?程序运⾏时,发⽣的不被期望的事件,它阻⽌了程序按照程序员的预期正常执⾏,这就是异常。
异常发⽣时,是任程序⾃⽣⾃灭,⽴刻退出终⽌。
在Java中即,Java在编译或运⾏或者运⾏过程中出现的错误。
Java提供了更加优秀的解决办法:异常处理机制。
异常处理机制能让程序在异常发⽣时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最⼤可能恢复正常并继续执⾏,且保持代码的清晰。
Java中的异常可以是函数中的语句执⾏时引发的,也可以是程序员通过throw 语句⼿动抛出的,只要在Java程序中产⽣了异常,就会⽤⼀个对应类型的异常对象来封装异常,JRE就会试图寻找异常处理程序来处理异常。
Java异常机制⽤到的⼏个关键字:try、catch、finally、throw、throws。
try -- ⽤于监听。
将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try语句块内发⽣异常时,异常就被抛出。
catch -- ⽤于捕获异常。
catch⽤来捕获try语句块中发⽣的异常。
finally -- finally语句块总是会被执⾏。
它主要⽤于回收在try块⾥打开的物⼒资源(如数据库连接、⽹络连接和磁盘⽂件)。
只有finally 块,执⾏完成之后,才会回来执⾏try或者catch块中的return或者throw语句,如果finally中使⽤了return或者throw等终⽌⽅法的语句,则就不会跳回执⾏,直接停⽌。
throw -- ⽤于抛出异常。
throws -- ⽤在⽅法签名中,⽤于声明该⽅法可能抛出的异常。
主⽅法上也可以使⽤throws抛出。
如果在主⽅法上使⽤了throws抛出,就表⽰在主⽅法⾥⾯可以不⽤强制性进⾏异常处理,如果出现了异常,就交给JVM进⾏默认处理,则此时会导致程序中断执⾏。
产⽣异常的原因:⽤户输⼊了⾮法数据。
要打开的⽂件不存在。
第5章-异常处理ppt课件
}
5.2 异常的捕获与处理
C#程序设计教程——蒙祖强编著
5.2.4 try-catch-finally结构 可以看到,虽然catch块包含了一
例如: int n = 1, m = 1; try {
产生零除异常
条return语句,且执行该return语 句时也会立即结束当前函数的执 行,但在结束之前仍然会执行 finally块。这说明,只要程序进
{ Console.WriteLine("产生异常:{0}", e.Message); //处理异常
}
Console.ReadKey();
}
5.1 一个产生异常的简单程序 C#程序设计教程——蒙祖强编著
说明: 可能出现异常的代码放在try块中 处理异常的代码则放在catch块中 当程序在运行过程中产生异常时,则会转向执行 catch块中的代码,从而避免因异常的产生而导致 程序运行的非正常终止。
5.2 异常的捕获与处理
C#程序设计教程——蒙祖强编著
5.2.3 try-catch-catch结构
static void Main(string[] args)
{
int n, m;
n = 30000;
m = 30000;
try
{
n = 1 / (n - m);
int[,] a = new int[n, n];
{ Console.WriteLine("产生异常:{0}", e.Message);
互换?
} catch (ArithmeticException ee) //基类所在catch块(作用范围大)
{ Console.WriteLine("产生异常:{0}", ee.Message);
异常处理PPT课件
这类异常并非因设计或实现引起,是无法避免的。 但一般情况下,程序员应该提供相应的代码捕捉和 处理。
14
受检查的异常和不受检查的异常: 受检查的异常
Exception类及其非RuntimeException子类属于受 检查的异常;
9) System.out.println("After method.");
10) } 11) }
6
Exception in thread "main" ng.ArithmeticException: / by zero at ExceptionDivideBy0.method(ExceptionDivideBy0.java:4) at ExceptionDivideBy0.main(ExceptionDivideBy0.java:8)
一般情况下,程序员可不必理会这类异常,它们 虽然很严重,但很少发生。
12
(2) RuntimeException类及其子类: 表示设计或实现 方面的问题,例如:
● ArithmeticException(算术运算异常): 算术运算时发生 的异常情况,如整数相除,除数为零。 ● ClassCastException(强制类型转换异常): 把一个对象 引用转换成一个不合适的类型,如把一个对象引用转换成某 个子类类型。 ● NullPointerException(空引用异常): 需要对象引用时使 用了一个null引用。 ● ArrayIndexOutOfBoundsException(数组下标越界异常): 下标值超出了数组大小。 ● NumberFormatException(数字格式异常): 试图将非数 字格式字符串转换成数值。
第九章 异常处理(1).ppt
}
catch( int ) {
cout << "except of deviding zero.\n";
}
cout << "that is ok.\n"; } int Div( int x, int y ) {
if(y == 0)
程序运行结果如下: 5/2 = 2 except of deviding zero.
c++的异常处理允许程序以结构化和顺序化的方 式处理反常和意外的情况。
14:28
3/30
面向对象程序设计(C++描述)
异常处理的基本思想
成信院 李代伟
将异常检测与处理分离,出现异常的函数不 需具备处理异常的能力。
当一个函数发生异常时,它抛出一个异常, 调用者捕获并处理该异常。若调用者不能处 理,还可抛出给上一级调用者处理,直至运 行系统。若仍不能处理,将简单终止程序。
什么是异常?
成信院 李代伟
应用程序要具有容错能力,当发生意外时也可作 出适当处理,不会导致严重后果。所谓异常,包 括用户误操作、外部设备或文件连接不正确、内 存不足等。
传统的处理方法是使用中断指令,如abort, assert, exit, return, 错误处理代码掺杂于功能实 现代码,降低了程序的可读性和可维护行, 而且 不适合于代码重用。
14:28
8/30
面向对象程序设计(C++描述)
成信院 李代伟
异常处理语法(捕获异常)
catch块 catch ( 类型 参数) //类型为基本数据类型或类类型 { // 异常处理语句块 } catch( … ) // 可捕获处理任意类型的异常 { // 异常处理语句块 }
异常处理讲解ppt
5
采购部反馈供应 商
仓库作区分隔 离存放
生产/QC 作使用 效果根据 供应商
需处理 的产品 入待处 理仓库
质量问 题的产 品入不 良品仓 库
技术部
采购部
责任原因续2
责任原因续3
异常处理汇总
异常处理过程图
来料品质异常通知书
来料品质异常通知书
日期: 厂商名称 来料日期 不良数 不良现象描述: 产品型号 来料数量 不良率 产品规格 抽检数 本月发生次数 年 月 日
检验员:
处理意见: 退货 全检 特采
审核: 不良原因分析:(发生原因和流出原因)
问题解决程序
• • • • • • • • • 当我们观察到或发现到时 这现象是否正常? 跟标准或目标比价的差异 (偏离程度)? 其异常是否不该存在? 为什么会发生异常? 如何改善异常? 如何控制发生异常的原因?
现象
确认并定义问题
例如: 人员的出勤率90%
问题
请假人员太多 分析问题
原因
设定改善目标并形成解决方案
续
• 4,实施并验证临时性纠正措施: • 验证和执行临时控制行动以将问题的影响同内部和外部的顾客隔离开, 临时行动将执行到永久性纠正计划采用为止,确认临时行动的有效性。 • 5,确定和验证问题的根本原因: • 通过测试每个根本原因对问题描述来隔离和验证根本原因,同时隔离 和验证根本原因的影响能在过程中被检测和控制的地方。 • 6,实施和确认永久性措施。 • 计划和执行选取的永久性纠正措施。去除临时性行动。验证永久性纠 正措施并监控长期的效果。 • 7,防止问题再次发生。 • 修改必需的系统包括政策,程序等来防止同一或相似问题的再发生, 如果需要对系统改进提出建议,并将学到的技术教训形成文件。 • 8,表彰小组和个人的贡献
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//
可能有异常
i=
Integer.parseInt( str1 );
j = Integer.parseInt( str2 );
int temp = i / j ;
// 可能有异
常
①
System.out.println("相除的结果: " + temp);
②
}catch( ArithmeticException e){
第6章 异常的捕获及处理
6.1 异常简介 6.2 异常类的继承结构 6.3 异常处理机制 6.4 本章小结
1
6.1 异常简介
• 在程序运行过程中,可能会遇到一些非正常的状况。例如: 除以零、数组越界、文件读写时找不到指定的路径、数据 库操作时连接不到指定的服务器。此时程序将无法继续运 行,导致整个程序运行中断。这种非正常状况对程序来说 是一种异常。
4
6.3 异常处理机制
创建类 创建对象
Java库类中的类 SUN
程序员
用户创建的类 程序员 程序员
异常类
SUN
出现异常的语句
异常处理的两种方式 ①捕获异常 try——catch——finally ②抛出异常 throw 、throws
• 处理异常时编程人员做什么?
①给异常类对象起名字
②抓它
③处理它
int j = 0 ;
try{
int temp = i / j ;
//
ห้องสมุดไป่ตู้
此处产生了异常
catchS(ysAtreimt.homuett.ipcrEixnctelpnt(i"o两n个a数e字){相除的结果:" +
temp) ;
System.out.println("出现异常了:" + ae) ;
}
System.out.println("******* 计算结束 *********") ;
9
范例ExceptionDemo04.java
public class ExceptionDemo04{
public static void main(String[] args){
int i , j ;
try{ String str1 = args[0] ;
// 可能有异
常
String str2 = args[1] ;
④抛它
初始化 程序员 程序员 JVM(自动)
5
1.异常范例——ExceptionDemo01.java
public class ExceptionDemo01{ public static void main(String args[]){ System.out.println("******* 计算开始 *******") ; int i = 10 ; int j = 0 ; int temp = i / j ; System.out.println("两个数字相除的结果:" + temp) ; System.out.println("******* 计算结束 *******") ; }
Object Throwable
• 查阅API文档
Error
Exception
RuntimeException IOException ……
3
6.2 异常类的继承结构
• Error 类:应用程序在运行期间发生的严重错误。例如,虚拟 机内存用尽、堆栈溢出等。(程序员管不了)
• Exception 类:几十个子类,描述了不同类型的异常。 ⑴非检查性异常:编译器在编译程序时不进行检查,到运行时才 会显现。例如RuntimeException,像数组越界异常、整数除以零 异常等。这类异常应该通过反复测试尽量避免,不应该靠异常处 理机制来处理,主要是由程序员经验不足或思维不够缜密造成的。 ⑵检查性异常:编译器在编译程序时必须进行异常处理,否则编 译时不能通过。例如IOException,像数据库连接失败、用光盘时 用户没插入光盘等。这类异常程序员是无法避免的,应由异常处 理机制处理。
}
}
多重catch处理异常
• 程序在开发中不会只存在一个异常,肯定会同时存在 多个异常。此时就需要使用多个catch语句进行处理
• 编程:使用键盘输入两个数据,进行除法操作。 • 分析(考虑异常情况): ➢ 没有输入参数或个数不够——数组超出绑定异常 ➢ 输入的参数不是数字——数字格式化异常 ➢ 除数为零——算术异常 ➢ ……
一出口
7
范例ExceptionDemo02.java
public class ExceptionDemo02{
public static void main(String args[]){
System.out.println("****** 计算开始 ********") ;
int i = 10 ;
e) ;
10
验证finally的作用:异常的统一出口
public class ExceptionDemo03{ public static void main(String[] args){ System.out.println("******** 计算开始 *******") ; int i = 10 ; int j = 2 ; try{ int temp = i / j ; System.out.println("两个数字相除的结果:" + temp) ; }catch(ArithmeticException ae){ System.out.println("出现异常了:" + ae) ; }finally{ System.out.println("不管是否出现异常,都执行此代码
• 程序员在程序的设计中必须考虑到各种异常的发生,并做 好相应的处理。
• 通常一个好的程序,整体的1/3是在处理要完成的真正任务, 而2/3是在处理异常,这样的程序才是最强壮的。
• Java提供一套完整的异常处理机制,保证程序的正常运行.
2
6.2 异常类的继承结构
• Java程序中的异常现象也采用了面向对象的思想,所 有的异常都使用类来描述。
System.out.println("算术异常:
" + e) ; ③ }catch( NumberFormatException e){
④
System.out.println("数字转换异
常:" + e);
}catch( ArrayIndexOutOfBoundsException e){
System.out.println("数组越界异常:" +
}
2.异常处理 try-catch-finally
try{
可能出现异常的语句;
}catch(异常类1 异常对象名){
异常1的处理语句;
}catch(异常类2 异常对象名){
异常2的处理语句;
}… finally{
一定要运行的语句;
}
关键字作用 try:捕捉异常 catch:处理异常 finally:异常的统