On Thu, Dec 22, 2011 at 4:17 PM, Anton Shepelev <anton....@gmail.com> wrote: > Marcos Douglas: > >> It's not difficult, but is boring have always a >> parameter or function return to return an error, >> and have to verify if error then... if not er- >> ror... if error and error then... etc > > If you mean having to write nested IFs to check all > the errors, then there are several ways to make the > error-checking in several calls "linearized": > > http://www.digipedia.pl/usenet/thread/1169/284/
No, I mean is better use try-except than nested IFs/GOTO/etc. > I prefer using GOTO statements: > > begin > Result := false; // Success flag > [...] > errMsg := errorOne; > if not procOne (...) then GOTO ERROR; > errMsg := errTwo; > if not procTwo (...) then GOTO ERROR; > errMsg := errThree; > if not procThree(...) then GOTO ERROR; > [...] > Result := true > ERROR: > end > > This way, the funtion returns an error flag and a > correspoinding message, and I prefer it to throwing > and catching Exceptions. I even wrap exception- > based code using external libraries in such proce- > dures to have an easier and cleaner error handling. > > Also see: > > http://www.theregister.co.uk/2006/01/11/exception_handling/ Thanks for the tips... but, IMHO, the code above would be more simpler like that: begin Result := False; // Success flag [...] procOne; procTwo; procThree; [...] Result := True; except on e: Exception do ShowMessage(e.Message); end; end; Marcos Douglas _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal