Not seeing any posts that I was able to answer my question with, I will ask it myself. I am currently trying to figure out some programming and had the intent of making a simple program that would ask a user to input an integer. After entering whatever the user had entered, if it is a variable, it would then say so in a following line of output. If the user had not entered an integer, it would catch the error and ask the user to attempt to reenter their integer--this process repeating until an integer was entered and the program could terminate.

Generally having a very low level of experience with anything above really straight-forward programming and having it be successful, my code not only has more errors above the problem I am currently having, but I probably have errors I didn't even know were there.

I have tried quite a lot of different things, and that is where I have somewhat of an idea of what is going on with some other blocks, but here is where I am right now:

```
import java.util.Scanner;

public class LauncherMain {

    static Scanner reader = new Scanner(System.in);

    public static void setInputValue() {
        int userInput = reader.nextInt();
    }

    public static void tryInputValue(int userInput) {       //do I even need this parameter, it seems to not have any correlation with the userInput integer I defined above
        try {
            setInputValue();
        }
        catch (java.util.InputMismatchException userInput) {    //if the code is in the method it will accept using userInput, but then goes on about some duplicate variable
            System.out.println("That wasn't an integer!");      //I haven't really looked into it, but I also would like this to be a warning instead of basic output
            setInputValue();    //I don't think this is right either, would it have to call a tertiary method that calls the try again? ...but I have a (necessary) finally block
        }
        finally {
            System.out.println("Awesome, your value is now: " + userInput);
        }
    }

    public static void main(String[] args) {
        System.out.println("Enter an integer:");
        tryInputValue(int userInput);   //Looks like I am also getting some sort of error down here, it has to do with not being able to be resolved to a variable
    }

}

```

Alright, so if you managed to survive reading through that probably very wrong code, the main problem I was getting was getting it so that the user would be able to reenter what would hopefully be an integer after failing the previous attempt. What I had before trying to add a block to do that would work, and additionally, not crash if what was entered was not an integer, because that catch block was there. The problem with that was that I was stuck with that falsely entered value and therefore could not use the variable: userInput as it was an input mismatch. So after attempting to add in something that would allow it to be reassigned, it started throwing some errors, I began changing stuff, and now I am getting errors in different places that I do not even understand.

If anyone is willing to help, thank you tons! And if you are willing, a description of just what everything is doing in the fix you provide would be incredibly useful! :)