A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhengweicong 中级黑马   /  2013-7-5 12:05  /  1422 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问亲们。我自定义一个异常继承Exception类,class MyException extends Exception,在一个类中定义了一个方法,
  1. class ExceptionTest
  2.                 {
  3.                         public void print() throws MyException{
  4.                                 System.out.println(3/0);
  5.                         }
  6.                 }
复制代码
如果我打印一句System.out.println(3/0);会报异常。
我想在测试类中捕获异常,让原来在控制台的异常输出信息/ by zero 变成中文提示信息怎么做?
               

4 个回复

正序浏览
进行使用多个异常进行处理试一试:我写的例子希望是你需要的
public class Captor {//创建类
static int quotient(int x,int y) throws MyException{ //定义方法抛出异常
  if(y <= 0){ //判断参数是否小于0
   throw new MyException("出现了除数是零的情况 / by zero");//异常信息
  }
  return x/y; //返回值
}
public static void main(String args[]){ //主方法
  try{//try语句包含可能发生异常的语句
   int result = quotient(3,-1);//调用方法quotient()
  }
  catch (MyException e) {//处理自定义异常
   e.printStackTrace();
   System.out.println(e.getMessage()); //输出异常信息
  }
  catch (ArithmeticException e) {//处理ArithmeticException异常
   System.out.println("除数不能为0");//输出提示信息
  }
  catch (Exception e) {//处理其他异常
      System.out.println("程序发生了其他的异常"); //输出提示信息
  }
}
}

回复 使用道具 举报
可以写入中文异常信息来覆盖原信息啊。举个例子吧,但不知道是不是你想要的。
  1. class MyException extends Exception
  2. {
  3.         MyException(String msg)  //这里覆盖原信息
  4.         {
  5.                 super(msg);
  6.         }
  7. }
  8. class Demo
  9. {
  10.         int div(int a,int b)throws MyException
  11.         {
  12.                 if(b==0)
  13.                         throw new MyException("出现了除数是零的情况 / by zero");  //传入你想要的中文信息

  14.                 return a/b;
  15.         }
  16. }
  17. class  ExceptionDemo
  18. {
  19.         public static void main(String[] args)
  20.         {
  21.                 Demo d = new Demo();
  22.                 try
  23.                 {
  24.                         int x = d.div(3,0);
  25.                 }
  26.                 catch (MyException e)
  27.                 {
  28.                         System.out.println(e.toString());
  29.                 }
  30.         }
  31. }
复制代码
回复 使用道具 举报
wangpan 发表于 2013-7-6 17:53
不用throws抛出异常,用try...catch捕获异常,在catch‘里捕获到异常的时候,输出你想输出的信息,不行吗? ...

额。。。哎。都没人回我帖子。
但是。我们老师非要这样子做。
把那个异常信息变成中文。
我也不晓得怎么做。
回复 使用道具 举报
不用throws抛出异常,用try...catch捕获异常,在catch‘里捕获到异常的时候,输出你想输出的信息,不行吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马