exit status running java classpath in unix shell

I have a java classpath running inside of a unix shell script. During my testing it will error with lines that show an example like this below.

java.io.FileNotFoundException error
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:129),

which I know why I get that error, but when I set in my unix shell script this to see the right exit status of success/fail, it always shows a 0 for success when that isn't really the case. Below is the two lines I have set to capture the exit status and just display that exit status for now.

notifycode=$?
echo $notifycode

I have these 2 lines above on a line right below my java command in my unix shell script. How can I get my unix shell script to capture any error exit status during my shell script?

Your problem doesn't have anything to do with the shell's error handling/reporting. If your java command will exit(0) even on a failure, then that's what the script will report. You need to check and confirm that your java command is exiting with the correct error code on failure.

If java throws and exception, does a stack trace then exits with an exit code of zero, then the exit code is zero.

To return an exit code you would need to call the following in the exception handler.

static void java.lang.System.exit(int status);