zoukankan      html  css  js  c++  java
  • 异常处理

    即使代码写的尽善尽美,但是在系统运行过程中还是会遇到各种各样的问题,比如:客户输入数据的格式、读取的文件不存在,网络是否畅通

     

    java程序在执行过程中所发生的异常事件可以分为两类:

    ERROR:java虚拟机无法解决的严重问题,jvm系统内部问题,资源耗尽等严重问题,一般不编写针对性的代码进行处理

    Exception:因编程错误或者其它偶然外在因素导致的一般性问题,可以使用针对性的问题进行处理。如:空指针访问、试图读取不存在的文件

      对于这些问题,一般有两种解决办法:

        1、一旦遇到这些错误,程序就终止运行,

        2、程序员在编写程序时,就考虑到错误的检测、错误消息的提示,以及错误的处理

     

     

    运行时异常:

      编译器不强制要求处理的异常,一般是指编译时候的逻辑错误,对于这类异常,可以不做处理,这类异常很普遍,若全部处理,可能会对程序的可读性和运行效率产生影响

    编译时异常:

        编译器要求必须处理的异常,即程序运行时候由于外界的异常因素造成的异常,对于这类异常,如果不处理,可能会带来意想不到的结果

    java提供的异常处理是抓抛模型

    java程序运行时候如果出现异常,会生成一个异常处理类对象,该异常对象会交给java运行时系统,这个过程称为抛出异常

    异常对象的生成:

      1、有java虚拟机自动生成,程序运行过程中,虚拟机检测到程序发生了问题,如果在当前的代码中没有找到相应的处理程序,就会在后天自动创建一个对应的异常类实例并抛出

      2、有开发人员手动创建,创建好的异常对象如果不抛出,对程序没有任何影响

    如果一个方法内抛出异常,该异常对象会抛给方法的调用者,如果方法调用者在程序中没有处理,它将继续向上抛出,直到异常被处理

      如果一个异常回到main方法,并且main方法也没有处理,则程序终止运行

    无论在try代码块中是否发生了异常,catch语句是否执行,catch语句中是否异常,catch是否有return语句,finally中的语句都会执行

    声明抛出异常:

      如果方法中可能生产某种异常,但是并不能确定如何处理这种异常,则此方法应显示的声明抛出异常,表明该方法不对异常做处理,由该方法的调用者处理

    在方法声明中用throws语句可以声明异常的列表,throws后面的异常方法可以是方法中产生的异常类型,也可以是它的父类

    java异常类对象在程序执行过程中出现的异常可以由系统自动抛出,也可以根据需要人工创建并抛出

    首先生产异常类对象,然后通过throw语句实现抛出操作(提交给java运行环境),可以抛出的异常是Throwable或子类

     捕获异常最理想是在编译期间,但有的错误只在运行时才会发生

    创建自定义异常类

    一般的:用户自定义类都是RuntimeException的子类

    自定义类都需要编写几个重载的构造器

    自定义的异常类通过throw抛出

    自定义类最重要的是异常类的名称,当异常出现时候,可以根据异常判断异常的类型

  • 相关阅读:
    微信支付
    集成支付宝SDK流程
    使用ASIFormDataRequest完成用户的登录操作
    本地推送UILocalNotification
    iOS 远程推送通知 详解
    iOS 8 中如何集成 Touch ID 功能
    iOS指纹识别Touch ID的安全性探讨
    iOS 支付(含支付宝、银联、微信)
    iOS 社交化分享功能
    Python3内建函数sorted
  • 原文地址:https://www.cnblogs.com/lzb0803/p/8964979.html
Copyright © 2011-2022 走看看