콘솔에서 readPassword()를 사용하여 읽는 기능이 있습니다. 이 함수는 하나의 프로그램 반복에서 여러 번 호출됩니다. 그러나 일단 readPassword() 줄에 도착하면 Java io 예외가 계속 발생합니다. 이 오류가 사라지는 finally 절에서 close() 문을 제거했을 때 나타났습니다. 왜 이런 일이 일어나고 언제 독자를 제대로 닫아야합니까?Java io 핸들이 유효하지 않습니다. 예외
public void Func()
{
Console console = System.console();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
if (console == null)
System.out.println("Error!");
try
{
char[] pwd = console.readPassword();
String password = new String(pwd);
System.out.println("PW: " + password);
String input = reader.readLine();
System.out.println("UserNm: " + input);
} catch (IOException e) {
System.out.println("IO EXCEPTION");
} finally {
if (reader != null)
{
try
{
reader.close();
}
catch (IOException e)
{
System.out.println("error");
}
}
}
return null;
}
미리 도움을 청하십시오!
예외 메시지는 디버깅 할 때 매우 유용합니다. 마찬가지로 :'e.printStackTrace();' – jn1kk
제안 주셔서 감사합니다 :) 나는 내 실제 코드에서 stacktrace를 정기적으로 출력합니다. 이것은 단지 스텁 일뿐입니다. – user459811