Click here to Skip to main content
15,921,989 members

Survey Results

How do you return error conditions?   [Edit]

Survey period: 16 Apr 2007 to 22 Apr 2007

If a routine encounters an error do you hope the caller checks, or do you throw an exception to force the point? (inspired by Anna's blog)

Q1. For non-critical errors:

OptionVotes% 
Set a global error flag222.40
Return a reserved value (0 or -1 etc)27830.32
Return an encoded error value (eg HRESULT)14716.03
Throw an exception37340.68
Cover up the mess and don't say anything9710.58

View optional text answers (23 answers)
Q2. For critical errors that leave the app in an undefined state

OptionVotes% 
Set a global error flag444.80
Return a reserved value (0 or -1 etc)566.11
Return an encoded error value (eg HRESULT)626.76
Throw an exception69776.01
Cover up the mess and don't say anything505.45

View optional text answers (26 answers)


 
GeneralRe: ...unless you are using C++ Pin
Blake Miller17-Apr-07 9:09
Blake Miller17-Apr-07 9:09 
GeneralRe: ...unless you are using C++ Pin
Shog916-Apr-07 15:02
sitebuilderShog916-Apr-07 15:02 
GeneralRe: ...unless you are using C++ Pin
peterchen16-Apr-07 23:36
peterchen16-Apr-07 23:36 
GeneralRe: ...unless you are using C++ Pin
Shog917-Apr-07 5:37
sitebuilderShog917-Apr-07 5:37 
GeneralRe: ...unless you are using C++ Pin
peterchen17-Apr-07 7:32
peterchen17-Apr-07 7:32 
GeneralRe: ...unless you are using C++ Pin
Shog917-Apr-07 8:08
sitebuilderShog917-Apr-07 8:08 
GeneralRe: Exceptions are good [modified] Pin
User of Users Group17-Apr-07 13:06
User of Users Group17-Apr-07 13:06 
GeneralExceptions are evil Pin
Michael Dunn15-Apr-07 18:30
sitebuilderMichael Dunn15-Apr-07 18:30 
I used to use the "reserved return value" method, but I've converted to using HRESULTs for the retval, and any additional output is returned through reference parameters. Using a consistent retval system is actually easier, because the caller doesn't have to think "now does this function return 0 or -1 (or NULL or INVALID_HANDLE_VALUE) on error?" when using my functions. Every retval can be tested with SUCCEEDED/FAILED.


--Mike--
Visual C++ MVP Cool | :cool:
LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ

Ford, what's this fish doing in my ear?

Generallongjmp() all the way! Pin
Shog915-Apr-07 19:12
sitebuilderShog915-Apr-07 19:12 
GeneralRe: longjmp() all the way! Pin
Gary Wheeler16-Apr-07 2:24
Gary Wheeler16-Apr-07 2:24 
GeneralRe: longjmp() all the way! Pin
John R. Shaw16-Apr-07 7:11
John R. Shaw16-Apr-07 7:11 
GeneralRe: longjmp() all the way! Pin
Gevorg17-Apr-07 5:37
Gevorg17-Apr-07 5:37 
GeneralRe: longjmp() all the way! Pin
Shog917-Apr-07 5:52
sitebuilderShog917-Apr-07 5:52 
GeneralRe: Exceptions are evil Pin
Nemanja Trifunovic16-Apr-07 2:01
Nemanja Trifunovic16-Apr-07 2:01 
GeneralEvent log Pin
Nisamudheen15-Apr-07 18:14
Nisamudheen15-Apr-07 18:14 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.