我应该添加一个方法而不在main中调用throws吗?
这样合适吗
我该怎么写?我不知道怎么写。

 private static String fileName = "C:\\fruit.csv";
public static void main(String[] args) throws
IOException{
 BufferedReader br = new BufferedReader(new
FileReader(fileName));
 TreeMap<String,Integer> tm = new
TreeMap<String,Integer>();
    String line;
    Logger logger = Logger.getLogger("Sample");
    BasicConfigurator.configure();
    logger.setLevel(Level.DEBUG);
    try{
        while((line = br.readLine()) != null){
            String[] words = line.split("\\s");
            for(String s : words){
                if(!tm.containsKey(s)){
                    tm.put(s,1);
                    logger.debug(s+""+tm.get(s)+"N");}else{
                    tm.put(s,tm.get(s).intValue()+1);
                    logger.debug(s+""+tm.get(s)+"N");}}}
        }catch(IOException e){
        logger.debug("Error");
        }finally{ br.close()}
        Writer fw = new FileWriter("C:\\count.properties");
        Properties p =new Properties();
        for(String key : tm.keySet()){
            p.setProperty(key,String.valueOf(tm.get(key)));
        }p.store(fw,"fruit");}}}

最佳答案

为什么不合适呢?谁说的是?

它完全取决于程序,因此广泛地宣称“不宜向主程序投掷”是错误的1。

如果发生异常,您认为应该怎么办?这是您的决定,而决定可能在很大程度上取决于程序的目的。

这是一个例外,因此您可能希望使用堆栈跟踪将其打印出来,以便弄清楚在哪里以及为什么。当java引发异常时,main命令正是这样做的,那么,为什么要自己做同样的事情就捕获它呢?

当然,如果它是命令行实用程序,则您可能想捕获该异常(包括RuntimeExceptionError),以打印一条没有堆栈跟踪的错误消息,然后以退出代码。但是,并非所有的Java程序都是命令行实用程序。

1)无论如何,这是我对该主题的看法。

09-27 22:42