Add exception to a boolean method
I have an equals method to compare some attributes, this is how it looks:
public boolean Complementos(COSTOS obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
COSTOS other = (COSTOS) obj;
if (NumeroParte == null) {
if (other.NumeroParte != null)
return false;
} else if (!NumeroParte.equals(other.NumeroParte))
return false;
if (descripcion == null) {
if (other.descripcion != null)
return false;
} else if (!descripcion.equals(other.descripcion))
return false;
if (Double.doubleToLongBits(monto) != Double.doubleToLongBits(other.monto))
return false;
if (referencia != other.referencia)
return false;
return true;
}
But besides to see if the attributes are equals, i want to return a value from "compareToIgnoreCase" from the attributes "-1, 0, 1" and i'm not allow to do it because of the method that is boolean and i tried to make it "int" but that would just mark as error my "return false/true", so... could i use an exception? if i could... how could i implemented?
Thanks
java
add a comment |
I have an equals method to compare some attributes, this is how it looks:
public boolean Complementos(COSTOS obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
COSTOS other = (COSTOS) obj;
if (NumeroParte == null) {
if (other.NumeroParte != null)
return false;
} else if (!NumeroParte.equals(other.NumeroParte))
return false;
if (descripcion == null) {
if (other.descripcion != null)
return false;
} else if (!descripcion.equals(other.descripcion))
return false;
if (Double.doubleToLongBits(monto) != Double.doubleToLongBits(other.monto))
return false;
if (referencia != other.referencia)
return false;
return true;
}
But besides to see if the attributes are equals, i want to return a value from "compareToIgnoreCase" from the attributes "-1, 0, 1" and i'm not allow to do it because of the method that is boolean and i tried to make it "int" but that would just mark as error my "return false/true", so... could i use an exception? if i could... how could i implemented?
Thanks
java
Why do you want to return both boolean and int? What are you trying to accomplish?
– forgivenson
Nov 14 '18 at 19:34
2
1. never use exceptions for "normal" flow, 2. if your result type does not allow what you want to return, then something is off and 3. keep separate things separate, so here in separate methods.
– arkascha
Nov 14 '18 at 19:35
While not relevant to your question, you should really use more braces in your conditional code. It’s obviously not necessary for the compiler to understand your code, but it would definitely help people. Just because you don’t need to use braces for a single-line body, doesn’t mean you shouldn’t!
– MTCoster
Nov 14 '18 at 19:37
add a comment |
I have an equals method to compare some attributes, this is how it looks:
public boolean Complementos(COSTOS obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
COSTOS other = (COSTOS) obj;
if (NumeroParte == null) {
if (other.NumeroParte != null)
return false;
} else if (!NumeroParte.equals(other.NumeroParte))
return false;
if (descripcion == null) {
if (other.descripcion != null)
return false;
} else if (!descripcion.equals(other.descripcion))
return false;
if (Double.doubleToLongBits(monto) != Double.doubleToLongBits(other.monto))
return false;
if (referencia != other.referencia)
return false;
return true;
}
But besides to see if the attributes are equals, i want to return a value from "compareToIgnoreCase" from the attributes "-1, 0, 1" and i'm not allow to do it because of the method that is boolean and i tried to make it "int" but that would just mark as error my "return false/true", so... could i use an exception? if i could... how could i implemented?
Thanks
java
I have an equals method to compare some attributes, this is how it looks:
public boolean Complementos(COSTOS obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
COSTOS other = (COSTOS) obj;
if (NumeroParte == null) {
if (other.NumeroParte != null)
return false;
} else if (!NumeroParte.equals(other.NumeroParte))
return false;
if (descripcion == null) {
if (other.descripcion != null)
return false;
} else if (!descripcion.equals(other.descripcion))
return false;
if (Double.doubleToLongBits(monto) != Double.doubleToLongBits(other.monto))
return false;
if (referencia != other.referencia)
return false;
return true;
}
But besides to see if the attributes are equals, i want to return a value from "compareToIgnoreCase" from the attributes "-1, 0, 1" and i'm not allow to do it because of the method that is boolean and i tried to make it "int" but that would just mark as error my "return false/true", so... could i use an exception? if i could... how could i implemented?
Thanks
java
java
edited Nov 14 '18 at 19:43
MTCoster
3,80922141
3,80922141
asked Nov 14 '18 at 19:32
Antonio AlejosAntonio Alejos
84
84
Why do you want to return both boolean and int? What are you trying to accomplish?
– forgivenson
Nov 14 '18 at 19:34
2
1. never use exceptions for "normal" flow, 2. if your result type does not allow what you want to return, then something is off and 3. keep separate things separate, so here in separate methods.
– arkascha
Nov 14 '18 at 19:35
While not relevant to your question, you should really use more braces in your conditional code. It’s obviously not necessary for the compiler to understand your code, but it would definitely help people. Just because you don’t need to use braces for a single-line body, doesn’t mean you shouldn’t!
– MTCoster
Nov 14 '18 at 19:37
add a comment |
Why do you want to return both boolean and int? What are you trying to accomplish?
– forgivenson
Nov 14 '18 at 19:34
2
1. never use exceptions for "normal" flow, 2. if your result type does not allow what you want to return, then something is off and 3. keep separate things separate, so here in separate methods.
– arkascha
Nov 14 '18 at 19:35
While not relevant to your question, you should really use more braces in your conditional code. It’s obviously not necessary for the compiler to understand your code, but it would definitely help people. Just because you don’t need to use braces for a single-line body, doesn’t mean you shouldn’t!
– MTCoster
Nov 14 '18 at 19:37
Why do you want to return both boolean and int? What are you trying to accomplish?
– forgivenson
Nov 14 '18 at 19:34
Why do you want to return both boolean and int? What are you trying to accomplish?
– forgivenson
Nov 14 '18 at 19:34
2
2
1. never use exceptions for "normal" flow, 2. if your result type does not allow what you want to return, then something is off and 3. keep separate things separate, so here in separate methods.
– arkascha
Nov 14 '18 at 19:35
1. never use exceptions for "normal" flow, 2. if your result type does not allow what you want to return, then something is off and 3. keep separate things separate, so here in separate methods.
– arkascha
Nov 14 '18 at 19:35
While not relevant to your question, you should really use more braces in your conditional code. It’s obviously not necessary for the compiler to understand your code, but it would definitely help people. Just because you don’t need to use braces for a single-line body, doesn’t mean you shouldn’t!
– MTCoster
Nov 14 '18 at 19:37
While not relevant to your question, you should really use more braces in your conditional code. It’s obviously not necessary for the compiler to understand your code, but it would definitely help people. Just because you don’t need to use braces for a single-line body, doesn’t mean you shouldn’t!
– MTCoster
Nov 14 '18 at 19:37
add a comment |
1 Answer
1
active
oldest
votes
You could use an exception to convey this, but you definitely shouldn't. Exceptions are for exceptional circumstances and shouldn't be used to control the flow of your application.
Generally speaking, if you have a method that needs to return more than one output then you should split it into multiple methods. This makes your code more reusable and your APIs less confusing.
In the rare case where you can't do this, you can return an object representing the result of the method. For example:
@Transactional
public LoginResponse login(String username, char password);
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53307551%2fadd-exception-to-a-boolean-method%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You could use an exception to convey this, but you definitely shouldn't. Exceptions are for exceptional circumstances and shouldn't be used to control the flow of your application.
Generally speaking, if you have a method that needs to return more than one output then you should split it into multiple methods. This makes your code more reusable and your APIs less confusing.
In the rare case where you can't do this, you can return an object representing the result of the method. For example:
@Transactional
public LoginResponse login(String username, char password);
add a comment |
You could use an exception to convey this, but you definitely shouldn't. Exceptions are for exceptional circumstances and shouldn't be used to control the flow of your application.
Generally speaking, if you have a method that needs to return more than one output then you should split it into multiple methods. This makes your code more reusable and your APIs less confusing.
In the rare case where you can't do this, you can return an object representing the result of the method. For example:
@Transactional
public LoginResponse login(String username, char password);
add a comment |
You could use an exception to convey this, but you definitely shouldn't. Exceptions are for exceptional circumstances and shouldn't be used to control the flow of your application.
Generally speaking, if you have a method that needs to return more than one output then you should split it into multiple methods. This makes your code more reusable and your APIs less confusing.
In the rare case where you can't do this, you can return an object representing the result of the method. For example:
@Transactional
public LoginResponse login(String username, char password);
You could use an exception to convey this, but you definitely shouldn't. Exceptions are for exceptional circumstances and shouldn't be used to control the flow of your application.
Generally speaking, if you have a method that needs to return more than one output then you should split it into multiple methods. This makes your code more reusable and your APIs less confusing.
In the rare case where you can't do this, you can return an object representing the result of the method. For example:
@Transactional
public LoginResponse login(String username, char password);
answered Nov 14 '18 at 19:51
StuPointerExceptionStuPointerException
4,51411845
4,51411845
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53307551%2fadd-exception-to-a-boolean-method%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Why do you want to return both boolean and int? What are you trying to accomplish?
– forgivenson
Nov 14 '18 at 19:34
2
1. never use exceptions for "normal" flow, 2. if your result type does not allow what you want to return, then something is off and 3. keep separate things separate, so here in separate methods.
– arkascha
Nov 14 '18 at 19:35
While not relevant to your question, you should really use more braces in your conditional code. It’s obviously not necessary for the compiler to understand your code, but it would definitely help people. Just because you don’t need to use braces for a single-line body, doesn’t mean you shouldn’t!
– MTCoster
Nov 14 '18 at 19:37