Java中的异常(java中的异常处理)

  本篇文章为你整理了Java中的异常(java中的异常处理)的详细内容,包含有java中的异常有哪几类 java中的异常处理 Java中的异常类都继承自java.lang.Throwable类 java中的异常名词解释 Java中的异常,希望能帮助你了解 Java中的异常。

  Java异常的体系结构

  
 

  根类Throwable,其子类Error和Excepion

  Excepion分为运行时异常RuntimeException,和编译时Exception异常。编译时异常必须处理,而运行时异常可以不处理。
 

  运行时异常可以不处理,但是程序运行时发生此异常就会报错
 

  编译时异常必须处理,比如说语法错误,不处理就不能编译
 

  处理异常的方式,try-catch-finally或者throws
 

  throw和throws的区别
 

  还有如何自定义异常

  当try catch finally中都有return语句时,finally中的return语句会覆盖前面的,也就是前面的return失效

  当try catch 中都有return语句时,看程序执行完try;还是说try块中发现了异常,执行到catch代码块中的return,然后存储该代码块中return语句中的值,等finally代码块执行完毕后再将return语句中的返回值进行返回。

  
* 该类的构造方法传入的参数是Fu这个类

   * 然后在 testMethod 方法中调用了fu的run()方法,并且捕获这个方法抛出的异常

   * 如果传入的是Fu子类的对象,且该子类重写父类方法时,抛出的异常类型大于父类方法的类型。那么下面这个方法就不能捕获到子类方法的异常了

   * 逻辑有问题,所以不允许这样

   private Fu fu;

   public TestWhyCantBig(Fu fu) {

   this.fu = fu;

   public void testMethod(){

   try {

   fu.run();

   } catch (IOException e) {

   throw new RuntimeException(e);

  

 

 

  子类重写父类的方法,方法的权限修饰符应该不小于父类被重写的方法

  

class Fu{

 

   void run() throws IOException {

  private class Zi extends Fu{ //这里private写法错的,只是演示

   @Override

   private void run() throws IOException{

  如果说子类方法权限修饰符比父类小

  根据多态,父类的引用指向子类的对象,那么此时下面的例子则无法调用z的run方法

  class TestWhyCantBig{

   public static void main(String[] args) {

   Fu z = new Zi();

   try {

   z.run();

   } catch (IOException e) {

   throw new RuntimeException(e);

  

 

  以上就是Java中的异常(java中的异常处理)的详细内容,想要了解更多 Java中的异常的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: