07JAVA程基础7.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
07JAVA程基础7

java 编程基础7-异常处理; 传统的编程语言中,程序员通过方法的特定返回值来表示异常情况,并且程序的正常流程和异常流程都采用同样的流程控制语句;传统语言的异常处理机制的缺点: 表示异常情况的能力有限,仅靠方法的返回值难以表达异常情况所包含的所有信息. 异常流程的代码和正常流程的代码混合在一起,会影响程序的可读性,容易增加程序结构的复杂性. 随着系统规模的不断扩大,这种处理方式己经成为创建大型可维护应用程序的障碍.;Java异常处理机制 把各种不同类型的异常情况进行分类,用Java类来表示异常情况,这种类被称为异常类。把异常情况表示成异常类,可以充分发挥类的可扩展和可重用的优势。 异常流程的代码和正常流程的代码分离,提高了程序的可读性,简化了程序的结构。 可以灵活的处理异常,如果当前方法有能力处理异常,就捕获并处理它,否则只需抛出异常,由方法调用者来处理它。;如果方法中的代码块可能抛出异常,有如下两种处理办法。 ??? (1)在当前方法中通过try...catch语句捕获并处理异常。 ??? (2)在方法的声明处通过throws语句声明抛出异常。;在Java编程语言中,用try和catch语句来处理异常。格式如下: 1. try { 2. // code that might throw a particular exception 3. } catch (SpecialException e) { 4. // code to execute if a SpecialException is thrown 5. } catch (Exception e) { 6. // code to execute if a general Exception exception is thrown 7. } ;int method1(int x)throws Exception1,Exception2 { if(x0)throw new Exception1(); if(x==0)throw new Exception2(); return ++x; } void method2() { Try{ //以下代码可能抛出异常 int a=method1(1); }catch(Exception1){ //针对产生了Exception1的处理 }catch(Exception2){ //针对产生了Exception2的处理 } } ;Java虚拟机用方法调用栈(method invocation stack)来跟踪每个线程中一系列方法调用过程,该堆栈保持了每个调用方法的本地信息(如方法的局部变量)。 每个线程都有一个独立 方法调用栈。对于Java应用程序的主线程,堆栈底部是程序的入口方法main()。当一个新方法被调用,Java虚拟机把描述该方法的栈结构置入栈顶,位于栈顶的方法为正在执行的方法。下面例题描述了方法调用栈的结构:;public class MainCatcher { public void methodA(int money) throws Exception{ if(--money = 0){ throw new SpecialException(Out of money); } System.out.println(methodA); } public void methodB(int money) throws Exception{ methodA(money); System.out.println(MethodB); } public static void main(String[] args) throws Exception { new MainCatcher().methodB(1); } };当Java虚拟机追溯到栈底部的方法时,如果仍然没有找到处理该异常的代码块: 1)调用异常对象的printStackTrace()方法, 打印来自方法调用栈的异常信息 2)如果该线程不是主线程,那么终止这个 线程,其他线程继续正常运行。如果该 线程是主线程,那么整个应用程序被终 止。;当一个方法正常执行完毕,Java虚拟机会从调用栈中弹出该方法的栈结构,然后继续处理前一个方法。 如果在执行方法的过程中抛出异常,则Java虚拟机必须找到

文档评论(0)

dmdt5055 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档