您的位置:首页 > 职场人生

黑马程序员 Java基础 --->异常处理与包

2013-04-11 13:58 501 查看

----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

异常处理机制

异常的体系:

    . Throwable

       . Error


          . 通常出现重大问题如:运行的类不存在或者内存溢出等。

          . 不编写针对代码对其处理

       . Exception

          . 在运行时运行出现的一起情况,可以通过try catch finally

Exception和Error的子类名都是以父类名作为后.

Throwable中的方法

   . getMessage() //获取异常信息,返回字符串。

   . toString()    // 获取异常类名和异常信息,返回字符串。

   . printStackTrace() //获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。

   . printStackTrace(PrintStream s)  //通常用该方法将异常内容保存在日志文件中,以便查阅。

对多异常处理:

   1. 声明异常时,建议声明更为具体的异常。这样的处理可以更具体。

   2. 对方声明几个异常,就对应有几个catch块。如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。(建立在进行catch处理时,catch中一定要定义具体处理方式。不要简单的就书写一条输出语句。)

自定义异常:

   1.必须是自定义类和继承Exception。

   2.继承Exception的原因:

   异常体系有一个特点,因为异常类和异常对象都被抛出。他们都具备可抛性。这个可抛性是Throwable这个体系中的独有的特点。只有这个体系中的类和对 象才可以被throgws和throw操作。

throws和throw的区别:

throws使用在函数上。

throw使用在函数内。

throw后面跟的异常类。可以跟多个。用都好隔开。

Throw后跟的是异常对象。

    异常处理例:

    try

    {

     需要被检测的代码

    }

    catch(异常类变量)

    {

     处理异常的代码;

    }

    finally

    {

      一定会执行的语句;

    }

抛出异常例:throws Exception

    public static void func()throws Exception //在函数上抛出

    {

      try

      {

        throw new Exception(); //在函数内抛出

      }

      finally

      {

        System.out.println("异常已经抛出");

      }

    }

多异常处理: 

 例: try

    {

      需要被检测的代码

    }

    catch(异常1 e)

    {

      处理异常的代码;

    }

    catch(异常2 e)

    {

      处理异常的代码;

    }

自定义异常类例:

    class MyException
extends Exception //继承异常类

    {

        描述自定义的异常的内容;

    }

异常在子父类覆盖中的体现:

   1. 子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类。

   2. 如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集。

   3. 如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。

   4. 如果子类方法发生了异常。就必须要进行try处理。绝对不能抛。

包:

   package关键字用来声明该类存放在哪个包。

   编译存放路径:javac –d路径编译文件 (例:javac
–d c:\myclass PackageDemo.java)

   设置classpath路径:set classpath =路径(例:set classpath
=c:myclass)

   建立对象时,存放在包的类前面要加上包名:包名.类名(例:包名.类名对象名
= new 包名.类名())

   如果从一个包访问另一个包的类,被访问的类要被public修饰。类公有后,被其他包访问的成员也要 public才可以访问。

   import关键字是用来导入包中的类的。A类如果导入B类所在的包,要访问B类是就可以省略前面的类名。

   当导入不同的包出现重名的类是必须加包名。

jar包:

创建当前路径的jar包:jar –执行命令
jar包名.jar包1包2

例:jar –cf haha.jar pack pack2

----------- android培训java培训、java学习型技术博客、期待与您交流! ------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: