debugging - Java: try(Scanner scan = new Scanner(System.in) { } causing an exception -


using try(scanner scan = new scanner(system.in)) { } causing

exception in thread "main" java.util.nosuchelementexception

when try debug says

variable information not available, source compiled without -g option.

and shows below code

    public scanner(inputstream source) {     this(new inputstreamreader(source), whitespace_pattern);   } 

one of methods uses line:

protected string loginname(){     string username;     string password;     try (scanner scan = new scanner(system.in)) { // line causing error.       system.out.print("enter username: ");       username = scan.next();       system.out.print("enter password: ");       password = scan.next();     }     if(getusernameslist().contains(username))          if(password.equals(getpasswordslist().get(getusernameslist().indexof(username)))) return username;         else return "-1";      else return "-1"; } 

you're closing system.in (a global-variable). please, not that. everywhere have

try(scanner scan = new scanner(system.in)) 

guarantees system.in close(d). once it's close(d) can't read again (or mentioned exception). also, can compile debug symbols (or step ide's built-in debugger or jdb applicable). scanner.close() javadoc says (in part),

if scanner has not yet been closed if underlying readable implements closeable interface readable's close method invoked


Comments

Popular posts from this blog

dns - How To Use Custom Nameserver On Free Cloudflare? -

python - Pygame screen.blit not working -

c# - Web API response xml language -