Add exception to a boolean method












0















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










share|improve this question

























  • 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


















0















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










share|improve this question

























  • 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
















0












0








0








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










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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





















  • 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














1 Answer
1






active

oldest

votes


















0














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);





share|improve this answer























    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
    });


    }
    });














    draft saved

    draft discarded


















    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









    0














    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);





    share|improve this answer




























      0














      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);





      share|improve this answer


























        0












        0








        0







        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);





        share|improve this answer













        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);






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 14 '18 at 19:51









        StuPointerExceptionStuPointerException

        4,51411845




        4,51411845
































            draft saved

            draft discarded




















































            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.




            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            List item for chat from Array inside array React Native

            Thiostrepton

            Caerphilly