Is it right way for handling exceptions using Apache ExceptionUtils.getRootCause?












0














Is it possible, that below condition in "My code" will be fulfilled(true)? I belive that no, beacuse getRootCause returns object casted to Throwable. So it should check, if Throwable is a subtype of MyOwnException, which is not true. So, in general, it is wrong way to use getRootCause to handle exceptions, is not it?



MyOwnException part



public class MyOwnException extends Exception {
// ....
}


Apache's ExceptionUtils.getRootCause



public static Throwable getRootCause(Throwable throwable) {
List list = getThrowableList(throwable);
return (list.size() < 2 ? null : (Throwable)list.get(list.size() - 1));
}


My code



try {
// do something
} catch (Exception e) {
try {
Throwable exc = ExceptionUtils.getRootCause(e);
if (exc instanceof MyOwnException) {
// do something
}
}
}









share|improve this question



























    0














    Is it possible, that below condition in "My code" will be fulfilled(true)? I belive that no, beacuse getRootCause returns object casted to Throwable. So it should check, if Throwable is a subtype of MyOwnException, which is not true. So, in general, it is wrong way to use getRootCause to handle exceptions, is not it?



    MyOwnException part



    public class MyOwnException extends Exception {
    // ....
    }


    Apache's ExceptionUtils.getRootCause



    public static Throwable getRootCause(Throwable throwable) {
    List list = getThrowableList(throwable);
    return (list.size() < 2 ? null : (Throwable)list.get(list.size() - 1));
    }


    My code



    try {
    // do something
    } catch (Exception e) {
    try {
    Throwable exc = ExceptionUtils.getRootCause(e);
    if (exc instanceof MyOwnException) {
    // do something
    }
    }
    }









    share|improve this question

























      0












      0








      0







      Is it possible, that below condition in "My code" will be fulfilled(true)? I belive that no, beacuse getRootCause returns object casted to Throwable. So it should check, if Throwable is a subtype of MyOwnException, which is not true. So, in general, it is wrong way to use getRootCause to handle exceptions, is not it?



      MyOwnException part



      public class MyOwnException extends Exception {
      // ....
      }


      Apache's ExceptionUtils.getRootCause



      public static Throwable getRootCause(Throwable throwable) {
      List list = getThrowableList(throwable);
      return (list.size() < 2 ? null : (Throwable)list.get(list.size() - 1));
      }


      My code



      try {
      // do something
      } catch (Exception e) {
      try {
      Throwable exc = ExceptionUtils.getRootCause(e);
      if (exc instanceof MyOwnException) {
      // do something
      }
      }
      }









      share|improve this question













      Is it possible, that below condition in "My code" will be fulfilled(true)? I belive that no, beacuse getRootCause returns object casted to Throwable. So it should check, if Throwable is a subtype of MyOwnException, which is not true. So, in general, it is wrong way to use getRootCause to handle exceptions, is not it?



      MyOwnException part



      public class MyOwnException extends Exception {
      // ....
      }


      Apache's ExceptionUtils.getRootCause



      public static Throwable getRootCause(Throwable throwable) {
      List list = getThrowableList(throwable);
      return (list.size() < 2 ? null : (Throwable)list.get(list.size() - 1));
      }


      My code



      try {
      // do something
      } catch (Exception e) {
      try {
      Throwable exc = ExceptionUtils.getRootCause(e);
      if (exc instanceof MyOwnException) {
      // do something
      }
      }
      }






      java exception-handling






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 21 '18 at 15:23









      Czarek

      7318




      7318
























          1 Answer
          1






          active

          oldest

          votes


















          1














          instanceof will check against the actual run-time type of an object instance. It does not matter what the declared compile-time type of the variable that holds the object is.



          So your condition works: If the root cause is a MyOwnException then your if block's body will execute.






          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%2f53415265%2fis-it-right-way-for-handling-exceptions-using-apache-exceptionutils-getrootcause%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









            1














            instanceof will check against the actual run-time type of an object instance. It does not matter what the declared compile-time type of the variable that holds the object is.



            So your condition works: If the root cause is a MyOwnException then your if block's body will execute.






            share|improve this answer


























              1














              instanceof will check against the actual run-time type of an object instance. It does not matter what the declared compile-time type of the variable that holds the object is.



              So your condition works: If the root cause is a MyOwnException then your if block's body will execute.






              share|improve this answer
























                1












                1








                1






                instanceof will check against the actual run-time type of an object instance. It does not matter what the declared compile-time type of the variable that holds the object is.



                So your condition works: If the root cause is a MyOwnException then your if block's body will execute.






                share|improve this answer












                instanceof will check against the actual run-time type of an object instance. It does not matter what the declared compile-time type of the variable that holds the object is.



                So your condition works: If the root cause is a MyOwnException then your if block's body will execute.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 21 '18 at 15:30









                Thilo

                193k77413572




                193k77413572






























                    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.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • 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%2f53415265%2fis-it-right-way-for-handling-exceptions-using-apache-exceptionutils-getrootcause%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

                    Feedback on college project

                    Futebolista

                    Albești (Vaslui)