• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 221
  • Last Modified:

Try/Catch block value accessible

Hi
I have a try/catch block to open a file and get values from it. I try to put an if statement and return False/True on some condition in if statement. When I end the block the method is showing error because I placed the return value statement in incorrect place, that is if statement should be outside try block but then it wont get the values from the try/catch block or would that be ok (confusing..... but the code is below:)

----
CODE

try {
            // Open and read the Feature.properties
            Properties props = new Properties();
            props.load( fis= new FileInputStream (new File ("Feature.properties")) );
           
            if ("Medium".equals(props.getProperty("Strength")) ){

                     return (bcs.getFeatureId());   // will return true or false
            } else {
                      return txtValue; //value is set to false
            }  
        } catch (IOException e){
                  e.printStackTrace();
        }

 -----

This method needs to return a boolean value. Right now because the if is inside try block therefors its not getting the return value, but if I place if outside the try block then it may not get value of "prop". I can not test this class as individual right now, thats why I need help to get the code right::)))
Thank you:-)
0
atwork2003
Asked:
atwork2003
  • 4
  • 4
  • 3
1 Solution
 
Ajay-SinghCommented:
> if ("Medium".equals(props.getProperty("Stre<wbr/>ngth")) ){
should be
return "Medium".equals(props.getProperty("Strength"));
0
 
atwork2003Author Commented:
Thank you for urgent response:)

I am still getting error that no return value is provided. Maybe because the return value  within try/catch block is not considered as return value for the method. Any help:)
0
 
Ajay-SinghCommented:
try returning false at the end of try/catch block:

try {
...
} catch() {
}

return false;
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
atwork2003Author Commented:
Question: That would work but wouldnt it override the return from try/catch and always return false. Thank you:)
0
 
Ajay-SinghCommented:
no - as we are returning in from the try block, the outer return will be executed only when there is IOException.
0
 
CEHJCommented:
>>
else {
                      return txtValue; //value is set to false
            }  
>>

isn't that an odd name for a boolean?
0
 
atwork2003Author Commented:
Great:) One last thing that return statement that you gave, would it return true/false if the values are not equal, right?
>>return "Medium".equals(props.getProperty("Strength"));
0
 
CEHJCommented:
You must keep the reference to the InputStream and make sure it's closed or you could get memory leaks
0
 
Ajay-SinghCommented:
this statement returns true if the property "Strength" has "Medium" value
0
 
CEHJCommented:
You could increase the robustness (unless you've a reason not to) with

return "Medium".equalsIgnoreCase(props.getProperty("Strength"));
0
 
atwork2003Author Commented:
Thanks a bunch every one. CEHJ thank you. Thanks Ajay for your patience and great solution:)
0

Featured Post

The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

  • 4
  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now