首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

求解JAVA中自定义错误的有关问题

2012-01-07 
求解JAVA中自定义异常的问题package WHimport java.io.*importjava.util.*public class HelloWorld{pub

求解JAVA中自定义异常的问题
package WH;

import java.io.*;
import java.util.*;
public class HelloWorld {
 
 public static void main(String[] args) throws Exception {
  while(true){
try{
  BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
  String readLine = stdIn.readLine(); //读取一个文本行
  StringTokenizer st=new StringTokenizer(readLine,":"); //以“:”为分隔符分隔文本行readLine
  int hour = 0;
  int min = 0;
  int sec = 0;
  if(st.countTokens() == 3) {
  hour=Integer.parseInt(st.nextToken()); //返回分隔符处的下一个标记
  min=Integer.parseInt(st.nextToken());
  sec=Integer.parseInt(st.nextToken());
  if(sec>=60 || min>=60 || hour>=24 || sec<0 || min<0 || hour<0)
  System.out.println("Invalid input");
  else
  System.out.println("Total seconds is "+(hour*3600+60*min+sec)); 
  }
  else
  System.out.println("Invalid input");
  }
  catch( OutOfRangeException OORE)
  {
OORE.printStackTrace();
  }
  catch(NumberFormatException ex){
  System.out.println("java.lang.NumberFormatException: " + ex.getMessage());
  }
  catch(Exception ex){
ex.printStackTrace();  
  }
  
  } }
}


package WH;



public class OutOfRangeException extends Exception throws OutofRangeException{
public OutOfRangeException() {}
 
 
 
public OutOfRangeException(String message) { 
super(message); 
}
}


Eclipse总是提示我exception is never thrown from the try statement body.
就改错
另外想问下两个类是写在一起。还是放在两个java文件中

[解决办法]
catch( OutOfRangeException OORE)
这里的catch是catch不到的,因为你没有地方抛出这个自定义的异常
一般自定义的异常是在某个自己的方法中抛出,然后另一个方法调用该方法时捕捉该自定义异常
否则,你这个自定义异常没有地方抛出,也就不需要捕获了

至于两个类,分开写还是合在一起写,就看你想怎么用了
一般最好分开,除非只有你的一个类(比如HelloWorld)使用同一个文件的另一个类(比如OutOfRangeException),其它文件的类没有使用OutOfRangeException,那么写在一起就没关系,否则其它也需要用到的话,还是要分开写,因为同一个文件只能有一个public类,如果另一个是非public的,那么其它包的类无法使用它

[解决办法]
catch(Exception e){
throw new OutOfRangeException ("xxx操作异常!");
}
[解决办法]
java异常处理是个大学问
一起共勉吧
http://qingwengang.iteye.com/blog/537637

热点排行