PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Thursday, August 4, 2022

[FIXED] How to print out the exception error in Java

 August 04, 2022     arrays, error-handling, exception, java, println     No comments   

Issue

I am trying my Java program to print an error message if nothing is entered in the command prompt. The user is expected to enter two file names in the command-line in Eclipse as arguments separated by a space. So if he/she has not entered anything I want this message to appear.

My code is as follows.

public class BTextLoader {

    ConcurrentHashMap<String, String> documents = new ConcurrentHashMap<String, String>();

    public static void main(String[] args) {
        // instantiate an instance of the TextLoader class.
        B1TextLoader loader = new TextLoader();

        // map .txt and .json names to the array of strings
        String txtFile = args[0];
        String jsonFile = args[1];

        // Check if command line arguments are NOT empty and then enter the file names.
        if (args.length > 0) {

            for (int x = 0; x < args.length; x++)
                loader.LoadTextFile(args[0]);           
                loader.SaveDocumentsToJSON(args[1]);
        
        }

        // Print a message if a required file name is not provided...
        else {
            System.err.println("No valid file has been entered. Please enter the file.");
        }

    }

I do not understand why my else statement does not work? Instead of printing out my error message in the console, I am getting

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
    at pipeline.TextLoader.main(TextLoader.java:18)

Thank you!


Solution

Your if statement is asking is args.length greater than 0. When you should be asking, is args.length equal to 0.

To do this you would use if(args.length == 0). This is because args.length cannot be less than 0, and if it is greater than 0, then it's passed your test, and your program can continue. However, if it is equal to 0, then it means no arguments were passed.

I personally, would suggest you use a try catch block.

try{
  B1TextLoader loader = new TextLoader();
  String txtFile = args[0];
  String jsonFile = args[1];

} catch (Exception e){
   System.err.println("Error: No valid file has been entered");
   System.exit(1);
}

for (int x = 0; x < args.length; x++){
      loader.LoadTextFile(args[0]);           
      loader.SaveDocumentsToJSON(args[1]);
}


Answered By - Tom Burrows
Answer Checked By - Clifford M. (PHPFixing Volunteer)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing