I have inherited the following java code, that gets the value of a property
from a properties file
:
String personName = this.properties.getFilePropertty("person.name"); if (personName != null) { // do something else } else { // do something }
The intended behavior in the above flow is that personName
will either be retrieved from the properties file or will be returned as null
if its not there, and handled accordingly.
However when the property is not there an exception is thrown in the getFileProperty()
method (shown below).
How can I fix this to have the intended behavior?
getFileProperty():
public String getFileProperty(String name) throws SystemPropertiesException { return Optional.ofNullable( this.properties.getProperty(name, null) ) .orElseThrow(()->new PropertiesException("Can not get property!")); }
Note – the getProperty()
method being called in the code above is java utils getProperty method.
Advertisement
Answer
You should wrap your code in a try catch block.
try { String personName = this.properties.getFileProperty("person.name"); // do something else } catch (PropertiesException exception) { // do something }
Edit: Alternatively provide a defaultValue to .getFileProperty()
String personName = this.properties.getFilePropertty("person.name", "NO_VALUE_FOUND"); if (!personName.equals("NO_VALUE_FOUND")) { // do something else } else { // do something }