refactor try-catch across class hierarchyJava inner class and static nested classCatch multiple exceptions at once?How slow are Java exceptions?The case against checked exceptionsGlobally catch exceptions in a WPF application?Efficiency of Java “Double Brace Initialization”?Can I catch multiple Java exceptions in the same catch clause?What is ApplicationException for in .NET?Catch multiple exceptions in one line (except block)Exception hierarchy/try-multi-catch

Could a complex system of reaction wheels be used to propel a spacecraft?

How can I improve my formal definitions?

Why are CEOs generally fired rather being demoted?

Ways you can end up paying interest on a credit card if you pay the full amount back in due time

How to load files as a quickfix window at start-up

Why is Mitch McConnell blocking nominees to the Federal Election Commission?

Is there anything in the universe that cannot be compressed?

Are there consequences for not filing a DMCA (any country)

In Toy Story, are toys the only inanimate objects that become alive? And if so, why?

Pandas transform inconsistent behavior for list

What caused the end of cybernetic implants?

What are the electrical characteristics of a PC gameport?

Displaying Time in HH:MM Format

Missing $ inserted. Extra }, or forgotten $. Missing } inserted

How are the cards determined in an incomplete deck of many things?

Why do fuses burn at a specific current?

Calculate Landau's function

How were US credit cards verified in-store in the 1980's?

What does "Ad" and "Soyad" mean on a Turkish visa application?

Sum and average calculator

Could these polynomials be identified?

How do I get my neighbour to stop disturbing with loud music?

Divide Numbers by 0

Is the equational theory of groups axiomatized by the associative law?



refactor try-catch across class hierarchy


Java inner class and static nested classCatch multiple exceptions at once?How slow are Java exceptions?The case against checked exceptionsGlobally catch exceptions in a WPF application?Efficiency of Java “Double Brace Initialization”?Can I catch multiple Java exceptions in the same catch clause?What is ApplicationException for in .NET?Catch multiple exceptions in one line (except block)Exception hierarchy/try-multi-catch






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















Suppose you have this code:



class Base {
void method() throws Exception
try
//Lots of code here
catch (Exception e)
//handle it (very little code here)



class Derived extends Base {
@Override
void method() throws Exception
try
//Lots of code here (same code as in base class)
catch (Exception e)
//handle it (very little code here; also same as base class)
catch (Error e)
e.printStackTrace();
System.exit(1);




So, as we can see, the methods are the same except the derived class has an extra catch clause. Is there a nice way to have a bit less duplicated code here?










share|improve this question



















  • 1





    I suggest to put your code in try block inside another method and call it when you need to.

    – Jordan Motta
    Mar 28 at 0:54











  • Hm... that works I suppose. Can't share the skeleton that way though. For instance, imagine that both methods have an identical finally block as well. (In the code that motivated this question, this is pretty much true: they have an almost identical finally block, with almost as much code as the try block.) I could make a method for that too I guess, but, but I'm not sure if there's QUITE enough code duplication for me to be sure this is worth the trouble.

    – Mark VY
    Mar 28 at 1:02











  • "The first rule of functions is that they should be small. The second rule of functions is that they should be smaller than that." (Martin, Clean Code, 2009, p 34). It is enough code to make into a method.

    – KevinO
    Mar 28 at 1:30











  • alright, alright, fair point

    – Mark VY
    Mar 28 at 14:30

















1















Suppose you have this code:



class Base {
void method() throws Exception
try
//Lots of code here
catch (Exception e)
//handle it (very little code here)



class Derived extends Base {
@Override
void method() throws Exception
try
//Lots of code here (same code as in base class)
catch (Exception e)
//handle it (very little code here; also same as base class)
catch (Error e)
e.printStackTrace();
System.exit(1);




So, as we can see, the methods are the same except the derived class has an extra catch clause. Is there a nice way to have a bit less duplicated code here?










share|improve this question



















  • 1





    I suggest to put your code in try block inside another method and call it when you need to.

    – Jordan Motta
    Mar 28 at 0:54











  • Hm... that works I suppose. Can't share the skeleton that way though. For instance, imagine that both methods have an identical finally block as well. (In the code that motivated this question, this is pretty much true: they have an almost identical finally block, with almost as much code as the try block.) I could make a method for that too I guess, but, but I'm not sure if there's QUITE enough code duplication for me to be sure this is worth the trouble.

    – Mark VY
    Mar 28 at 1:02











  • "The first rule of functions is that they should be small. The second rule of functions is that they should be smaller than that." (Martin, Clean Code, 2009, p 34). It is enough code to make into a method.

    – KevinO
    Mar 28 at 1:30











  • alright, alright, fair point

    – Mark VY
    Mar 28 at 14:30













1












1








1








Suppose you have this code:



class Base {
void method() throws Exception
try
//Lots of code here
catch (Exception e)
//handle it (very little code here)



class Derived extends Base {
@Override
void method() throws Exception
try
//Lots of code here (same code as in base class)
catch (Exception e)
//handle it (very little code here; also same as base class)
catch (Error e)
e.printStackTrace();
System.exit(1);




So, as we can see, the methods are the same except the derived class has an extra catch clause. Is there a nice way to have a bit less duplicated code here?










share|improve this question














Suppose you have this code:



class Base {
void method() throws Exception
try
//Lots of code here
catch (Exception e)
//handle it (very little code here)



class Derived extends Base {
@Override
void method() throws Exception
try
//Lots of code here (same code as in base class)
catch (Exception e)
//handle it (very little code here; also same as base class)
catch (Error e)
e.printStackTrace();
System.exit(1);




So, as we can see, the methods are the same except the derived class has an extra catch clause. Is there a nice way to have a bit less duplicated code here?







java exception refactoring dry code-duplication






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 28 at 0:41









Mark VYMark VY

7315 silver badges19 bronze badges




7315 silver badges19 bronze badges










  • 1





    I suggest to put your code in try block inside another method and call it when you need to.

    – Jordan Motta
    Mar 28 at 0:54











  • Hm... that works I suppose. Can't share the skeleton that way though. For instance, imagine that both methods have an identical finally block as well. (In the code that motivated this question, this is pretty much true: they have an almost identical finally block, with almost as much code as the try block.) I could make a method for that too I guess, but, but I'm not sure if there's QUITE enough code duplication for me to be sure this is worth the trouble.

    – Mark VY
    Mar 28 at 1:02











  • "The first rule of functions is that they should be small. The second rule of functions is that they should be smaller than that." (Martin, Clean Code, 2009, p 34). It is enough code to make into a method.

    – KevinO
    Mar 28 at 1:30











  • alright, alright, fair point

    – Mark VY
    Mar 28 at 14:30












  • 1





    I suggest to put your code in try block inside another method and call it when you need to.

    – Jordan Motta
    Mar 28 at 0:54











  • Hm... that works I suppose. Can't share the skeleton that way though. For instance, imagine that both methods have an identical finally block as well. (In the code that motivated this question, this is pretty much true: they have an almost identical finally block, with almost as much code as the try block.) I could make a method for that too I guess, but, but I'm not sure if there's QUITE enough code duplication for me to be sure this is worth the trouble.

    – Mark VY
    Mar 28 at 1:02











  • "The first rule of functions is that they should be small. The second rule of functions is that they should be smaller than that." (Martin, Clean Code, 2009, p 34). It is enough code to make into a method.

    – KevinO
    Mar 28 at 1:30











  • alright, alright, fair point

    – Mark VY
    Mar 28 at 14:30







1




1





I suggest to put your code in try block inside another method and call it when you need to.

– Jordan Motta
Mar 28 at 0:54





I suggest to put your code in try block inside another method and call it when you need to.

– Jordan Motta
Mar 28 at 0:54













Hm... that works I suppose. Can't share the skeleton that way though. For instance, imagine that both methods have an identical finally block as well. (In the code that motivated this question, this is pretty much true: they have an almost identical finally block, with almost as much code as the try block.) I could make a method for that too I guess, but, but I'm not sure if there's QUITE enough code duplication for me to be sure this is worth the trouble.

– Mark VY
Mar 28 at 1:02





Hm... that works I suppose. Can't share the skeleton that way though. For instance, imagine that both methods have an identical finally block as well. (In the code that motivated this question, this is pretty much true: they have an almost identical finally block, with almost as much code as the try block.) I could make a method for that too I guess, but, but I'm not sure if there's QUITE enough code duplication for me to be sure this is worth the trouble.

– Mark VY
Mar 28 at 1:02













"The first rule of functions is that they should be small. The second rule of functions is that they should be smaller than that." (Martin, Clean Code, 2009, p 34). It is enough code to make into a method.

– KevinO
Mar 28 at 1:30





"The first rule of functions is that they should be small. The second rule of functions is that they should be smaller than that." (Martin, Clean Code, 2009, p 34). It is enough code to make into a method.

– KevinO
Mar 28 at 1:30













alright, alright, fair point

– Mark VY
Mar 28 at 14:30





alright, alright, fair point

– Mark VY
Mar 28 at 14:30












0






active

oldest

votes










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%2f55388543%2frefactor-try-catch-across-class-hierarchy%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes




Is this question similar to what you get asked at work? Learn more about asking and sharing private information with your coworkers using Stack Overflow for Teams.







Is this question similar to what you get asked at work? Learn more about asking and sharing private information with your coworkers using Stack Overflow for Teams.



















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%2f55388543%2frefactor-try-catch-across-class-hierarchy%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

SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

용인 삼성생명 블루밍스 목차 통계 역대 감독 선수단 응원단 경기장 같이 보기 외부 링크 둘러보기 메뉴samsungblueminx.comeh선수 명단용인 삼성생명 블루밍스용인 삼성생명 블루밍스ehsamsungblueminx.comeheheheh

155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해