015_面向对象_异常,包和Object类

1.异常(http://blog.csdn.net/hguisu/article/details/6155636)

  (1)异常的定义

    异常是指在运行期间发生的不正常情况,java中用类的形式对不正常情况进行了描述和封装,称为异常类。不同的问题用不同的类进行具体的描述。

问题很多,描述的类也很多,将其共性进行向上抽取,形成了异常体系。

  (2)异常的体系

        

    ①Error(程序不可处理的)
       是由jvm抛出的严重性问题,这种问题发生一般不针对性处理,直接修改程序。
    ②Exception(程序可以处理的)

  (3)Exception的分类

    ①编译时异常:Exception中除了子类RuntimeException的异常体系。

      这种问题一旦出现,希望在编译时就进行检测,让这种问题有对应的处理方式,都可以针对性的处理
    ②运行时异常:Exception中的RuntimeException体系。
      这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。

      运行时异常的特点是Java编译器不会检查它,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,也会编译通过。

  (4)throw和throws的区别

    ①throws使用在方法上,throw使用在函数内

    ②throws抛出的是异常类,可以抛出多个,用逗号隔开,throw抛出的是异常对象。

  (5)异常处理的机制

    ①抛出异常:当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息。运行时系统负责寻找处置异常的代码并执行。

    ②捕获异常:在方法抛出异常之后,运行时系统将转为寻找合适的异常处理器。潜在的异常处理器是异常发生时依次存留在调用栈中的方法的集合。当异常处理器所能处理的异常类型与方法抛出的

            异常类型相符时,即为合适 的异常处理器。运行时系统从发生异常的方法开始,依次回查调用栈中的方法,直至找到含有合适异常处理器的方法并执行。当运行时系统遍历调用栈而未

            找到合适 的异常处理器,则运行时系统终止。同时,意味着Java程序的终止。

          具体格式是:

              try
              {
                //需要被检测异常的diamond
              }
              catch(异常类1 变量)//该变量用于接受发生的异常
              {
                //处理异常的代码
              }

              catch(异常类2 变量)//该变量用于接受发生的异常
              {
                //处理异常的代码
              }
              finally
              {
                //无论是否捕获或处理异常,一定会被执行的代码,当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。
              }

             

  (6)异常处理的原则

    1.函数内容如果抛出需要检测的异常,那么函数上必须要声明。否则必须在函数内用try catch捕捉,否则编译失败

    2.如果调用到了声明异常的函数,要么try catch要么throws,否则编译失败

    3.什么时候catch,什么时候throws呢?
      功能内容可以解决,用catch
      解决不了,用throws告诉调用者,由调用者解决

    4.一个功能如果抛出了多个异常,那么调用时,必须有对应的多个catch进行

      针对性处理。内部有几个需要检测的异常,就抛几个异常,抛出几个,就catch几个。

    
        

原文地址:https://www.cnblogs.com/lydbky/p/8305902.html

时间: 2024-10-14 03:23:02

015_面向对象_异常,包和Object类的相关文章

java.lang包【Object类】

基本描述: (1)Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: (2)Object类是所有Java类的祖先.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法.可以使用类型为Object的变量指向任意类型的对象 Object的主要方法介绍: package java.lang; public class Object { /* 一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用.*

写出java.lang.Object类的六个常用方法

java是面向对象的语言,而Object类是java中所有类的顶级父类(根类). 每个类都使用Object类作为超类,所有对象(包括数组)都实现这个类的方法,即使一个类没有用extends明确指出继承于某个类,那么它都默认继承Object类. Object类中提供了很多方法,这里只取其中比较常用的方法做下简述. 1)public String toString()  >>> 获取对象信息的方法 这个方法在打印对象时被调用,将对象的信息变为字符串返回,默认输出对象地址. 举个例子: /**

黑马程序员-Java基础-面向对象—多态、Object类、内部类、异常

第一讲  多态 1.  定义 可以理解为事物存在的多种体现形态. 在java中,当函数的功能内容不确定时,可以将此方法定义为抽象方法,让其子类去实现.当子类对象不同时,调用同一个函数名,会执行不同的函数体,得到不同的结果,从而体现了多态性. 2.  多态的体现形式 父类的引用指向了自己的子类对象:Fu f = new Zi(): 父类的引用也可以接受自己的子类对象: 3.  多态的前提条件 必须是类与类之间有关系,要么继承,要么实现(接口): 函数之间存在覆盖(重写): 4.  多态的好处 大大

黑马程序员-面向对象-Object类

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>.<a href="http://edu.csdn.net"target="blank">.Net培训</a>.期待与您交流! ---------------------- 一.Object类中的equals(

Object类-try-catch-finally-throw-throws-自定义异常

一.Object类     Object类是最顶端的类,其它类都是它的子类,它的方法可以被继承.如果定义的类没有继承别的类,那它的直接父类就是Object.如果方法参数类型为object类型, 则调用方法可以传递任意类型的值(相当于多态);同理,如果方法返回值为Object类型,那么给方法的返回数据值为任意类型.     两种常用方法:toString()/equals() (1)toString方法 源码: public String toString(){         return ge

JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法

相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链 JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法 1.Object类 在JS中,Object是所有类的基

08. Object类、异常类

八.黑马程序员_Object类.异常类 A.Object类  B.异常类 A.Object类介绍 a.介绍 Object类是所有类的直接或间接父类,它里面定义的功能是所有类都具备的. b.Object类中常用的方法有 getClass():返回该对像的运行时类.它返回一个Class类型的对像.在反射中较常用: toString():返回该对像的字符串表现形式.返回值为String类型.通常我们都要覆写这个方法: hashCode():返回该对象的哈希码值.它返回一个int类型的值.通常情况下我们

面向对象(Object类-equals()))

import com.sun.xml.internal.ws.server.ServerRtException; /** * Object 是所有对象的直接或者间接父类. * 该类中定义的肯定是所有对象都具备的功能 * Created by rabbit on 2014-07-29.博客园.刘朋程 * */ class Demo111 { }    * Created by rabbit on 2014-07-29.博客园.刘朋程 public class ObjectDemo {     pu

Object类和异常

Object类(所有类的顶级父类) 今天说的两个方法: equals: 用于比较两个对象是否相同,它其实是使用两个对象的内存地址进行比较,底层默认使用的是==比较运算符来判断的. 在以后开发中,要比较两个对象是否相同,经常会根据对象中的属性值进行比较.也就是经常需要重写Object类中的equals方法,根据对象的属性值进行比较         注意:在重写Object类中的equals方法时,一定要注意参数是Object类型,在调用对象的属性时,一定要进行类型转换,在转换之前一定要进行类型判断