书签 分享 收藏 举报 版权申诉 / 33
上传文档赚钱

类型java异常分析说明及处理办法课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4715034
  • 上传时间:2023-01-04
  • 格式:PPT
  • 页数:33
  • 大小:104KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《java异常分析说明及处理办法课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    java 异常 分析 说明 处理 办法 课件
    资源描述:

    1、异常及其处理办法前言1.“未被检测到的错误将可能被忽略.”引自一家领先计算公司的技术文档2.“在真的开始编程时我才发现,它比预想的难多了.忽然我意识到:我生命中的大多数时间都要花在查找自己程序的错误上了.”MauricecWilkes 谁不希望自己一路顺风?谁不希望一夜间盖起高楼大厦,造出航天飞机?但幻想代替不了现实.最现实的做法是未雨绸缪,防患于未然.制定异常处理策略,应随机应变地解决各类问题。Java异常处理机制ThrowableError(unchecked)ExceptionIOException(checked)RuntimeException(unchecked)Throwable

    2、类1.Throwable 类是 Java 语言中所有错误或异常的超类。2.在java程序设计语言中,异常对象都是派生于Throwable类的一个实例。3.如果java中内置的异常类不能满足需求,用户还可以创建自己的异常类。Error类Error类层次结构描述了java运行时系统的内部错误和资源耗尽错误。如果出现这样的内部错误,除了通知用户,并尽力使程序安全地终止外,再无能为力。不过这样的情况很少出现Exception类q Java程序设计的时候将Exception划分成两个分支:一支为曾经能够正确运行,而由于某些情况导致的异常属于IOException。另一支由程序错误导致的异常属于Runti

    3、meException。IOException类包含以下情况:q试图在文件尾部后面读取数据。q试图打开一个错误格式的URLRuntimeException类包含下面情况:q错误的类型转换。q数组访问越界。q访问空指针。如果出现RuntimeException异常,就一定是你的问题以下为RuntimeException异常:qNullPointerException 空指针异常qIndexOutOfBoundsException 指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。qIllegalArgumentException 抛出的异常表明向方法传递了一个不合法或不正确的参数。

    4、q更多RuntimeException异常查看API帮助文档抛出异常1.找到一个合适的异常类2.创建这个类的一个对象3.将对象抛出例如:String readData(InputStream input)throws IOException throw new IOException();抛出异常的格式1例如:public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException 抛出异常的格式2捕获异常q 必须设置try/catch 语句块,try语句块的简单形

    5、式如下:try code more code more code catch(ExceptionType e)handler for this type 如果try语句块中任何代码抛出一个在catch子句中指定的异常类,那么1.程序将跳过try语句块中的其余代码。2.程序将执行catch子句中的处理器代码。q演示代码:public void read(String fileName)try InputStream in=new FileInputStream(fileName);int b;while(b=in.readLine()!=-1)process input catch(IOExce

    6、ption e)e.printStackTrace();捕获多个异常try code catch(exceptiontype e1)catch(exceptiontype e2)catch(exceptiontype e3)不论后面跟着多少个catch都一样,try-catch语句是这样执行的:首先逐个从上到下执 行try块中的java语句,如果没有发生异常,则执行完try块后跳过catch块(不论有多少个catch都跳过)。如果try块中某条语句存在异 常,则跳到相对应的catch块中(发生什么异常,就跳到什么catch里,如果没有准确对应的,就跳到父类异常的catch中),执行完该catc

    7、h块 中的语句,然后跳过其它的catch块,接着往下走。Finally子句 try /1 code that might throw exceptions /2catch(IOException e)/3 show error dialog /4finally /5以下3种情况会执行finally子句:1.代码没有抛出异常。在这种情况下,程序首先执行try语句块中的全部代码,然后执行finally子句中的代码。2.代码抛出一个在catch子句中捕获的异常。程序执行try语句块中的所有代码,直到发生异常为止。此时,将跳过try语句块中剩余的代码,而转去执行与该异常匹配的catch子句中的代码,最

    8、后执行finally子句中的代码。3.代码抛出了一个异常,但这个异常不是由catch子句捕获。在这个情况下,程序将执行try语句块中所有语句,直到有异常被抛出为止。此时,将跳过try语句块中剩余代码,然后执行finally子句中的代码。并将异常抛给这个方法的调用者。finally子句无论在try语句块中是否遇到异常,finally子句中的代码块都会被执行。空指针异常qJava.lang.NullPointerException由RuntimeException派生出来,是一个运行级别的异常。意思是说可能会在运行的时候才会被抛出,而且需要看这样的运行级别异常是否会导致你的业务逻辑中断。出现空指针

    9、异常原因:q 使用了未初始化的对象,并调用其方法(虽然已经声明)例如:String s=null;/对象s为空(null)int length=s.length();/发生空指针异常。q 是数据库查询时出现了查询为空的项目,却也依然引用其变量。q 将 null 作为一个数组,获得其长度。例如:String array=null;int length=array.length;用一句最朴实的话形容:就是你拿空的对象去做有实例的对象做的事情。解决方案q检查到对象为空时,设置对象值为空字符串或一个默认值。q检测到对象为空时,根本不执行某操作,直接跳转到其他处理中。q检查到对象为空时,提示用户操作有错

    10、误。处理方法一String userName=request.getParameter(username);/该变量值为空时,转化为默认空字符串If(userName=null)userName=;If(userName.equals(“root”)处理方法二String userName=request.getParameter(username);/该变量值为空时,转化为默认空字符串,不执行有关操作。If(usreName!=null)If(userName.equals(root).处理方法三String userName=request.getParameter(username);/

    11、该变量值为空时,转化为默认空字符串,不执行有关操作。If(usreName=null)/提示用户输入信息为空q实际中,上面提供到三种处理方式也同样适用于其他异常的处理:异常处理方式 1)检查到异常出现,设置对象值为空字符串或一个默认值;异常处理方式 2)检测到异常出现,根本不执行某操作,直接跳转到其他处理中。异常处理方式 3)检查到异常出现,提示用户操作有错误。个人建议:q使用equals时尽量使用常量比对变量,慎用变量比对常量。如:String ok=null;if(ok.equals(ok)/会抛异常System.out.println(true);elseSystem.out.println(false);改成:if(ok.equals(ok)/不会抛异常System.out.println(true);elseSystem.out.println(false);总结 不管是在程序中遇见异常情况,还是在生活中遇见异常情况,能处理的处理,不能处理的及时上抛或者上报。谢谢各位观看!作者:RAY制作日期:2009-04-12

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:java异常分析说明及处理办法课件.ppt
    链接地址:https://www.163wenku.com/p-4715034.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库