Exception Handling

Please support our C++ advertiser: Intel Parallel Studio Home
Reply

Join Date: Oct 2006
Posts: 143
Reputation: venomlash is an unknown quantity at this point 
Solved Threads: 2
venomlash's Avatar
venomlash venomlash is offline Offline
Junior Poster

Exception Handling

 
0
  #1
Sep 1st, 2007
Hi, I took a course in JAVA and learned about exceptions...I'm not sure how to throw and catch in C++. Can I get some help please???
Beware of the Rancor. I'm not kidding.
If it doesn't compile, try saying "By the power of MegaMan!!!" <this has kinda worked for me, actually...>
Scotland is NOT North Britain, Glasgow does NOT rhyme with "cow", and Robbie Burns is...well, if you don't already know who he was, you're kinda screwed.
Reply With Quote Quick reply to this message  
Join Date: Apr 2004
Posts: 4,362
Reputation: Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future 
Solved Threads: 241
Team Colleague
Dave Sinkula's Avatar
Dave Sinkula Dave Sinkula is offline Offline
long time no c

Re: Exception Handling

 
0
  #2
Sep 1st, 2007
Since I know little about it, I'll point you here.
"One of the methods used by statists to destroy capitalism consists in establishing controls that tie a given industry hand and foot, making it unable to solve its problems, then declaring that freedom has failed and stronger controls are necessary." --Ayn Rand
Reply With Quote Quick reply to this message  
Join Date: Aug 2005
Posts: 598
Reputation: SpS is on a distinguished road 
Solved Threads: 32
SpS's Avatar
SpS SpS is offline Offline
Posting Pro

Re: Exception Handling

 
0
  #3
Sep 1st, 2007
Here's another tutorial
Last edited by SpS; Sep 1st, 2007 at 11:15 pm.
Reply With Quote Quick reply to this message  
Join Date: Feb 2005
Posts: 199
Reputation: Tight_Coder_Ex is an unknown quantity at this point 
Solved Threads: 14
Tight_Coder_Ex's Avatar
Tight_Coder_Ex Tight_Coder_Ex is offline Offline
Junior Poster

Re: Exception Handling

 
0
  #4
Sep 2nd, 2007
One of expecption handlings greatest claims to fame is ability to unroll the stack. Lets suppose you have subroutines "A", "B", "C". Your main code establishes a try block, where in it you call "A" and then "A" calls "B" and "B" calls "C". In "C" there is an error and you throw and expection and it will revert right back to the catch statement in your main module re-establishing the stack as if it had returned normally to that point

Somewhat similiar to the way ON ERROR GOSUB works in VB

So what I try to do is in all my subs and fuctions just throw exceptions and implement appropriate try blocks in the main body of program.

http://relisoft.com has some pretty good tutorials on this already incorportated into full functioning programs.
Last edited by Tight_Coder_Ex; Sep 2nd, 2007 at 10:58 am. Reason: Fixed relisoft link
Reply With Quote Quick reply to this message  
Join Date: Dec 2006
Posts: 1,089
Reputation: vijayan121 is a name known to all vijayan121 is a name known to all vijayan121 is a name known to all vijayan121 is a name known to all vijayan121 is a name known to all vijayan121 is a name known to all 
Solved Threads: 164
vijayan121 vijayan121 is offline Offline
Veteran Poster

Re: Exception Handling

 
0
  #5
Sep 2nd, 2007
>> I took a course in JAVA and learned about exceptions...I'm not sure how to throw and catch in C++.

the fundamental difference is the use of the 'resource acquisition is initialization' technique in resource management. the c++ philosophy is
a. error handling code must be clearly seperate from normal code
b. you should not have to write error handling code (read no finally scattered all around the place to clean up when exceptions are thrown) except at the place where you attempt to handle the error.
c. the possibility of an error is not deemed to be an error. (exceptions are not checked at compile-time; if exception specifications are not violated at runtime there is no error).
d. the exception mechanism (as the name suggests) is designed to handle exceptional situations; (for example, when you iterate over a sequence, there is nothing exceptional about reaching its end (i would say that never being able to reach the end would be exceptional).
e. exceptions are expensive at runtime (stack unwind is required), but should cause minimum overhead if no exceptional situation occurs. exceptions are the exception rather than the rule.

so your java experience might in some ways be a disadvantage; you should be willing to unlearn a few things.

here are a few links which deal with the conceptual (rather than syntactic) differences between java and c++ exceptions.
http://www.hackcraft.net/raii/
http://en.wikipedia.org/wiki/Resourc...Initialization
http://www.informit.com/articles/art...&seqNum=8&rl=1
http://www.artima.com/intv/modern3.html
http://www.research.att.com/~bs/3rd_safe.pdf
the last link (appendix E) is about exception safety in the c++ standard library; if you are starting out on c++, read section E.6 'implications for library users'.
Last edited by vijayan121; Sep 2nd, 2007 at 2:52 pm.
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC