Java exceptions, after catch it stills prints whats after
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I am using some exceptions, but even if one is thrown and catched, it does continue output whats after the catch block.
I want my exception that is thrown, to get catched and only print out whats in the catch body, unless there is no exception and move on to the last souf.
Somehow though, when i have an exception, my catch body is printed but also the souf after it, that should not be printed.
How do i organize these exceptions?
------- a method that throws an exception
public double getHeight() throws ExceptionCheck {
//if end point is not set, return -1 (error)
if(points[1] == null){
throw new ExceptionCheck("The height cannot be calculated, the end point is missing!nn");
} else {
double height = points[1].getY() - points[0].getY();
return height;
}
}
------- the method that handles the throw from getHeight
@Override
public double getArea() {
//if end point is not set, return -1 (error)
double area = 0;
try {
area = getHeight() * getWidth();
}
catch(ExceptionCheck e){
System.out.printf("The area cannot be calculated, the end point is missing!nn");
}
return area;
}
---------- here the last SOUF after the catch should not be printed, but gets printed anyways
private static void printArea(Shape shape) {
System.out.println("Printing area of a " + shape.getClass().getSimpleName());
double area = 0d;
// Get area of the shape and print it.
try {
area = shape.getArea();
}
catch(ExceptionCheck e){
System.out.printf(e.getMessage());
}
System.out.println("The area is: " + area);
}
java exception exception-handling
add a comment |
I am using some exceptions, but even if one is thrown and catched, it does continue output whats after the catch block.
I want my exception that is thrown, to get catched and only print out whats in the catch body, unless there is no exception and move on to the last souf.
Somehow though, when i have an exception, my catch body is printed but also the souf after it, that should not be printed.
How do i organize these exceptions?
------- a method that throws an exception
public double getHeight() throws ExceptionCheck {
//if end point is not set, return -1 (error)
if(points[1] == null){
throw new ExceptionCheck("The height cannot be calculated, the end point is missing!nn");
} else {
double height = points[1].getY() - points[0].getY();
return height;
}
}
------- the method that handles the throw from getHeight
@Override
public double getArea() {
//if end point is not set, return -1 (error)
double area = 0;
try {
area = getHeight() * getWidth();
}
catch(ExceptionCheck e){
System.out.printf("The area cannot be calculated, the end point is missing!nn");
}
return area;
}
---------- here the last SOUF after the catch should not be printed, but gets printed anyways
private static void printArea(Shape shape) {
System.out.println("Printing area of a " + shape.getClass().getSimpleName());
double area = 0d;
// Get area of the shape and print it.
try {
area = shape.getArea();
}
catch(ExceptionCheck e){
System.out.printf(e.getMessage());
}
System.out.println("The area is: " + area);
}
java exception exception-handling
I am unsure of what you are asking about, You should make your post short and straight forward
– SamzSakerz
Nov 17 '18 at 0:54
add a comment |
I am using some exceptions, but even if one is thrown and catched, it does continue output whats after the catch block.
I want my exception that is thrown, to get catched and only print out whats in the catch body, unless there is no exception and move on to the last souf.
Somehow though, when i have an exception, my catch body is printed but also the souf after it, that should not be printed.
How do i organize these exceptions?
------- a method that throws an exception
public double getHeight() throws ExceptionCheck {
//if end point is not set, return -1 (error)
if(points[1] == null){
throw new ExceptionCheck("The height cannot be calculated, the end point is missing!nn");
} else {
double height = points[1].getY() - points[0].getY();
return height;
}
}
------- the method that handles the throw from getHeight
@Override
public double getArea() {
//if end point is not set, return -1 (error)
double area = 0;
try {
area = getHeight() * getWidth();
}
catch(ExceptionCheck e){
System.out.printf("The area cannot be calculated, the end point is missing!nn");
}
return area;
}
---------- here the last SOUF after the catch should not be printed, but gets printed anyways
private static void printArea(Shape shape) {
System.out.println("Printing area of a " + shape.getClass().getSimpleName());
double area = 0d;
// Get area of the shape and print it.
try {
area = shape.getArea();
}
catch(ExceptionCheck e){
System.out.printf(e.getMessage());
}
System.out.println("The area is: " + area);
}
java exception exception-handling
I am using some exceptions, but even if one is thrown and catched, it does continue output whats after the catch block.
I want my exception that is thrown, to get catched and only print out whats in the catch body, unless there is no exception and move on to the last souf.
Somehow though, when i have an exception, my catch body is printed but also the souf after it, that should not be printed.
How do i organize these exceptions?
------- a method that throws an exception
public double getHeight() throws ExceptionCheck {
//if end point is not set, return -1 (error)
if(points[1] == null){
throw new ExceptionCheck("The height cannot be calculated, the end point is missing!nn");
} else {
double height = points[1].getY() - points[0].getY();
return height;
}
}
------- the method that handles the throw from getHeight
@Override
public double getArea() {
//if end point is not set, return -1 (error)
double area = 0;
try {
area = getHeight() * getWidth();
}
catch(ExceptionCheck e){
System.out.printf("The area cannot be calculated, the end point is missing!nn");
}
return area;
}
---------- here the last SOUF after the catch should not be printed, but gets printed anyways
private static void printArea(Shape shape) {
System.out.println("Printing area of a " + shape.getClass().getSimpleName());
double area = 0d;
// Get area of the shape and print it.
try {
area = shape.getArea();
}
catch(ExceptionCheck e){
System.out.printf(e.getMessage());
}
System.out.println("The area is: " + area);
}
java exception exception-handling
java exception exception-handling
edited Nov 17 '18 at 1:36
khelwood
32.4k74466
32.4k74466
asked Nov 17 '18 at 0:51
ThesarThesar
227
227
I am unsure of what you are asking about, You should make your post short and straight forward
– SamzSakerz
Nov 17 '18 at 0:54
add a comment |
I am unsure of what you are asking about, You should make your post short and straight forward
– SamzSakerz
Nov 17 '18 at 0:54
I am unsure of what you are asking about, You should make your post short and straight forward
– SamzSakerz
Nov 17 '18 at 0:54
I am unsure of what you are asking about, You should make your post short and straight forward
– SamzSakerz
Nov 17 '18 at 0:54
add a comment |
1 Answer
1
active
oldest
votes
That isn't how catch
works. If that shouldn't be printed when there is an exception, you must move it into the body of the try
. Like,
// Get area of the shape and print it.
try {
double area = shape.getArea();
System.out.println("The area is: " + area); // <-- if the previous line throws
// an exception, this will not print.
}
catch(ExceptionCheck e){
System.out.printf(e.getMessage());
}
Your method getArea
doesn't actually throw
the Exception
. It prints and swallows it. For the above catch
to be invoked, you would also have to modify getArea
like
@Override
public double getArea() throws ExceptionCheck {
try {
return getHeight() * getWidth();
}
catch(ExceptionCheck e){
System.out.printf("The area cannot be calculated, the end point is missing!nn");
throw e; // <-- add this.
}
}
It still does, have tried that also. Can it be something wrong in my getArea()? Should the "return" also be in the try? And if so, how? Because the method will still require a return outside of the try bracets.
– Thesar
Nov 17 '18 at 1:00
1
@Thesar Yes. YourgetArea
doesn't ever throw an exception. It silently swallows them instead.
– Elliott Frisch
Nov 17 '18 at 1:05
Thanks, it works now, except for that both throws are geting printed. The print of getArea() "The area cannot..." and the print of getHeight() "The height cannot..."
– Thesar
Nov 17 '18 at 1:11
Solved it by only having throw new ExceptionCheck("The area cannot...") in the catch body in getArea(). Thanks Elliott!
– Thesar
Nov 17 '18 at 1:14
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%2f53347192%2fjava-exceptions-after-catch-it-stills-prints-whats-after%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
That isn't how catch
works. If that shouldn't be printed when there is an exception, you must move it into the body of the try
. Like,
// Get area of the shape and print it.
try {
double area = shape.getArea();
System.out.println("The area is: " + area); // <-- if the previous line throws
// an exception, this will not print.
}
catch(ExceptionCheck e){
System.out.printf(e.getMessage());
}
Your method getArea
doesn't actually throw
the Exception
. It prints and swallows it. For the above catch
to be invoked, you would also have to modify getArea
like
@Override
public double getArea() throws ExceptionCheck {
try {
return getHeight() * getWidth();
}
catch(ExceptionCheck e){
System.out.printf("The area cannot be calculated, the end point is missing!nn");
throw e; // <-- add this.
}
}
It still does, have tried that also. Can it be something wrong in my getArea()? Should the "return" also be in the try? And if so, how? Because the method will still require a return outside of the try bracets.
– Thesar
Nov 17 '18 at 1:00
1
@Thesar Yes. YourgetArea
doesn't ever throw an exception. It silently swallows them instead.
– Elliott Frisch
Nov 17 '18 at 1:05
Thanks, it works now, except for that both throws are geting printed. The print of getArea() "The area cannot..." and the print of getHeight() "The height cannot..."
– Thesar
Nov 17 '18 at 1:11
Solved it by only having throw new ExceptionCheck("The area cannot...") in the catch body in getArea(). Thanks Elliott!
– Thesar
Nov 17 '18 at 1:14
add a comment |
That isn't how catch
works. If that shouldn't be printed when there is an exception, you must move it into the body of the try
. Like,
// Get area of the shape and print it.
try {
double area = shape.getArea();
System.out.println("The area is: " + area); // <-- if the previous line throws
// an exception, this will not print.
}
catch(ExceptionCheck e){
System.out.printf(e.getMessage());
}
Your method getArea
doesn't actually throw
the Exception
. It prints and swallows it. For the above catch
to be invoked, you would also have to modify getArea
like
@Override
public double getArea() throws ExceptionCheck {
try {
return getHeight() * getWidth();
}
catch(ExceptionCheck e){
System.out.printf("The area cannot be calculated, the end point is missing!nn");
throw e; // <-- add this.
}
}
It still does, have tried that also. Can it be something wrong in my getArea()? Should the "return" also be in the try? And if so, how? Because the method will still require a return outside of the try bracets.
– Thesar
Nov 17 '18 at 1:00
1
@Thesar Yes. YourgetArea
doesn't ever throw an exception. It silently swallows them instead.
– Elliott Frisch
Nov 17 '18 at 1:05
Thanks, it works now, except for that both throws are geting printed. The print of getArea() "The area cannot..." and the print of getHeight() "The height cannot..."
– Thesar
Nov 17 '18 at 1:11
Solved it by only having throw new ExceptionCheck("The area cannot...") in the catch body in getArea(). Thanks Elliott!
– Thesar
Nov 17 '18 at 1:14
add a comment |
That isn't how catch
works. If that shouldn't be printed when there is an exception, you must move it into the body of the try
. Like,
// Get area of the shape and print it.
try {
double area = shape.getArea();
System.out.println("The area is: " + area); // <-- if the previous line throws
// an exception, this will not print.
}
catch(ExceptionCheck e){
System.out.printf(e.getMessage());
}
Your method getArea
doesn't actually throw
the Exception
. It prints and swallows it. For the above catch
to be invoked, you would also have to modify getArea
like
@Override
public double getArea() throws ExceptionCheck {
try {
return getHeight() * getWidth();
}
catch(ExceptionCheck e){
System.out.printf("The area cannot be calculated, the end point is missing!nn");
throw e; // <-- add this.
}
}
That isn't how catch
works. If that shouldn't be printed when there is an exception, you must move it into the body of the try
. Like,
// Get area of the shape and print it.
try {
double area = shape.getArea();
System.out.println("The area is: " + area); // <-- if the previous line throws
// an exception, this will not print.
}
catch(ExceptionCheck e){
System.out.printf(e.getMessage());
}
Your method getArea
doesn't actually throw
the Exception
. It prints and swallows it. For the above catch
to be invoked, you would also have to modify getArea
like
@Override
public double getArea() throws ExceptionCheck {
try {
return getHeight() * getWidth();
}
catch(ExceptionCheck e){
System.out.printf("The area cannot be calculated, the end point is missing!nn");
throw e; // <-- add this.
}
}
edited Nov 17 '18 at 1:05
answered Nov 17 '18 at 0:54
Elliott FrischElliott Frisch
157k1397192
157k1397192
It still does, have tried that also. Can it be something wrong in my getArea()? Should the "return" also be in the try? And if so, how? Because the method will still require a return outside of the try bracets.
– Thesar
Nov 17 '18 at 1:00
1
@Thesar Yes. YourgetArea
doesn't ever throw an exception. It silently swallows them instead.
– Elliott Frisch
Nov 17 '18 at 1:05
Thanks, it works now, except for that both throws are geting printed. The print of getArea() "The area cannot..." and the print of getHeight() "The height cannot..."
– Thesar
Nov 17 '18 at 1:11
Solved it by only having throw new ExceptionCheck("The area cannot...") in the catch body in getArea(). Thanks Elliott!
– Thesar
Nov 17 '18 at 1:14
add a comment |
It still does, have tried that also. Can it be something wrong in my getArea()? Should the "return" also be in the try? And if so, how? Because the method will still require a return outside of the try bracets.
– Thesar
Nov 17 '18 at 1:00
1
@Thesar Yes. YourgetArea
doesn't ever throw an exception. It silently swallows them instead.
– Elliott Frisch
Nov 17 '18 at 1:05
Thanks, it works now, except for that both throws are geting printed. The print of getArea() "The area cannot..." and the print of getHeight() "The height cannot..."
– Thesar
Nov 17 '18 at 1:11
Solved it by only having throw new ExceptionCheck("The area cannot...") in the catch body in getArea(). Thanks Elliott!
– Thesar
Nov 17 '18 at 1:14
It still does, have tried that also. Can it be something wrong in my getArea()? Should the "return" also be in the try? And if so, how? Because the method will still require a return outside of the try bracets.
– Thesar
Nov 17 '18 at 1:00
It still does, have tried that also. Can it be something wrong in my getArea()? Should the "return" also be in the try? And if so, how? Because the method will still require a return outside of the try bracets.
– Thesar
Nov 17 '18 at 1:00
1
1
@Thesar Yes. Your
getArea
doesn't ever throw an exception. It silently swallows them instead.– Elliott Frisch
Nov 17 '18 at 1:05
@Thesar Yes. Your
getArea
doesn't ever throw an exception. It silently swallows them instead.– Elliott Frisch
Nov 17 '18 at 1:05
Thanks, it works now, except for that both throws are geting printed. The print of getArea() "The area cannot..." and the print of getHeight() "The height cannot..."
– Thesar
Nov 17 '18 at 1:11
Thanks, it works now, except for that both throws are geting printed. The print of getArea() "The area cannot..." and the print of getHeight() "The height cannot..."
– Thesar
Nov 17 '18 at 1:11
Solved it by only having throw new ExceptionCheck("The area cannot...") in the catch body in getArea(). Thanks Elliott!
– Thesar
Nov 17 '18 at 1:14
Solved it by only having throw new ExceptionCheck("The area cannot...") in the catch body in getArea(). Thanks Elliott!
– Thesar
Nov 17 '18 at 1:14
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%2f53347192%2fjava-exceptions-after-catch-it-stills-prints-whats-after%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
I am unsure of what you are asking about, You should make your post short and straight forward
– SamzSakerz
Nov 17 '18 at 0:54