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

来源:互联网 发布:美白乳液知乎 编辑:程序博客网 时间:2024/06/04 19:44

----------- 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这个体系中的独有的特点。只有这个体系中的类和对   象才可以被throgwsthrow操作。

throwsthrow的区别:

       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包名.jar12

       例:jar –cf haha.jar pack pack2

 

 

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

原创粉丝点击