Scanner userInput = new Scanner(System.in);
FileWriter writer;
try {
System.out.println("Enter the file directory you would like to store in");
String fileLocation = userInput.nextLine();
writer = new FileWriter(fileLocation);
} catch(java.io.IOException e) {
System.out.println("Error message");
}
writer.write("Stuff"); //writer may not have been initialized
好办法:
System.console().printf("Enter the file directory you would like to store in");
String location = System.console().readLine();
try (FileWriter writer = new FileWriter (location)) {
writer.write("Stuff");
} catch (IOException e) {
new RuntimeException("Error message", e).printStackTrace();
}
解释:
system.console().printf()
启用在stdout上打印消息。system.out
可能更好,因为并不严格要求有“控制台”。system.console()
进行控制台管理。简单明了多了。不要忘记分配控制台(不要使用javaw
可执行文件)。printStackTrace()
在stderr上打印调用堆栈,这样可以方便地查找代码中的错误位置。问题内容: 我尝试编译以下内容,但在m16h(x)周围得到以下内容: 不知道为什么。我已经尝试过各种方法,但是看来我做得对。 问题答案: 方法的签名表明很容易引发Exception。 这意味着异常之一: 必须由呼叫者处理 } catch (Exception e) { e.printStackTrace(); } 必须由呼叫者重新抛出
我有一个方法被定义为: 编译器抱怨说,“未报告的异常政策异常;必须被捕获或声明为被抛出。我不知道为什么它建议我可以抛出,但“抛出”就在方法签名中。 被定义为: 当我尝试在try…catch中封装调用时,错误会保留,并会引发另一个错误,该错误表示try主体中从未抛出异常。我该如何补救?Am使用javase7和netneans 8
问题内容: 尝试编译以下代码时遇到此错误。我想知道我做错了什么。 问题答案: 您要么需要在方法中 捕获 异常: 或 声明 抛出方法:
首先,我想指定我正在尝试远程进行此升级。我收到此错误: 2015-04-24:11:59:42[错误]myDB-未能重新编译“DBTYPE”数据库对象:ExcSQL失败:遇到Oracle错误:ORA-06550:第1行,第7列:PLS-00201:标识符“UTL\u RECOMP”。RECOMP_SERIAL’必须声明为ORA-06550:第1行,第7列:PL/SQL:忽略语句(6550)SQL文
问题内容: 我有下面给出的代码。但是,当我尝试编译代码时,出现以下错误。 我在代码中捕获了以上异常。我不知道为什么会这样。 问题答案: 该语句在外部,将其放在try块中以有效地被catch块捕获