我应该添加一个方法而不在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
命令正是这样做的,那么,为什么要自己做同样的事情就捕获它呢?
当然,如果它是命令行实用程序,则您可能想捕获该异常(包括RuntimeException
和Error
),以打印一条没有堆栈跟踪的错误消息,然后以退出代码。但是,并非所有的Java程序都是命令行实用程序。
1)无论如何,这是我对该主题的看法。