java自定义异常类===代码问题

来源:1-5 Java 中的异常抛出以及自定义异常

慕粉1606461256

2017-03-24 20:22

代码:
package yichang;
public class Nuli{
 public static void main(String[] args){
  Nuli one = new Nuli();
  
  try{
   one.shuchu();
  }catch(Xinde e){
   System.out.println("123");
   e.printStackTrace();
  }
 }
 public void shuchu() throws Xinde{
  int a = 10;
  int b = 0;
  if(a == 10){
   a = a/b;
  }
 }
}

自定义异常类:

package yichang;

public class Xinde extends Exception {
  public Xinde(String me){
   super(me);
  }
}

其它都正常,就是不输出  123,哪位大神帮忙看看,谢谢了

写回答 关注

6回答

  • qq_Takeiteasy_2
    2018-12-23 18:01:40

    https://img2.mukewang.com/5c1f5cdf0001fd6304490602.jpg你觉得如何?

  • qq_梦盈华尔兹_0
    2017-07-01 18:32:28


    你的异常类呢

  • qq_梦盈华尔兹_0
    2017-07-01 18:27:44

    这个可以输出123

  • qq_梦盈华尔兹_0
    2017-07-01 18:27:13

    package project6.immoc3;


    public class show {


    public static void main(String[] args) {

    // TODO Auto-generated method stub

    show mo=new show();

    try{

    mo.show1();

    }catch(Exception e){

    System.out.println("输出异常123");

    e.printStackTrace();

    }

    }

    public void show1() throws Exception{

    int a=10;

    int b=0;

    if(a==10){

    a=a/b;

    }

    }

    }


  • Sky4480
    2017-03-24 20:57:31

    package com.test;

    public class ExceptionTest {

        public static void main(String[] args) {
            ExceptionTest one = new ExceptionTest();
            try {
                one.shuchu();
            } catch (Exception e) {
                System.out.println("123");
                e.printStackTrace();
            }
        }

        public void shuchu() {
            int a = 10;
            int b = 0;
            if (a == 10) {
                a = a / b;
            }
        }
    }

    qq_Tak... 回复慕粉1606...

    它捕获的是算术异常,而你自定义的异常类跟算术异常这个类的关系是,你的类可以说是算术类的叔叔,所以到catch的时候无法处理,但换成Exception时,Exception是你定义类的父类。我也不知道该怎么重新写一个算术异常覆盖原来的。。好像那样做也没什么意义,我写了一个可以捕获你定义的异常类的代码,放评论区了。

    2018-12-23 17:59:40

    共 3 条回复 >

  • Sky4480
    2017-03-24 20:56:28

    public void shuchu() throws Xinde{
          int a = 10;
          int b = 0;
          if(a == 10){
           a = a/b;
          }
         }

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题