简体   繁体   中英

How to execute all lines in try block before it moves to catch?

I have to read a file in try block and later print it out. While the print method is working, the program is not running the method. How do I solve this? I can't keep it in the while loop.

Lexer.java

private boolean atEOF = false;
private SourceReader source;

public static void main(String args[]) {
  Token token;
    
  try {
    Lexer lex = new Lexer(args[0]);

    while(!(lex.atEOF)) {
      token = lex.nextToken(); 
    }
  
  lex.source.printVec(); // WANT TO EXECUTE THIS METHOD

 
  } catch (Exception e) {
      System.out.println("usage: java lexer.Lexer filename.x"); 
      System.exit(-1);
  } 
}

SourceReader.java

public void printVec() {

  System.out.println("in the program");

  for (String l : progVec) {
    System.out.println(l);
  }
}

How do I run printVec() after the while loop in Lexer.java?

I would simply declare the Lexer outside of the try-catch block then put the required Function at the first line of the catch part too.

Lexer lex;  
try {
  lex = new Lexer(args[0]);

  while(!(lex.atEOF)) {
    token = lex.nextToken(); 
  }
  lex.source.printVec(); 
} catch (Exception e) {
  lex.source.printVec();
  //... rest of code
} 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM