You are viewing a plain text version of this content. The canonical link for it is here.
Posted to websh-dev@tcl.apache.org by "David N. Welton" <da...@dedasys.com> on 2001/11/27 13:07:04 UTC

'catch' web::dispatch

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4729

Situation: want a global catch across all web::command procs
    # global error catcher
    if {[catch {web::dispatch -hook {logHttpRequest;�normalizeHttpRequest}} errMsg]} {
        # we signal every error to the client
        web::log pisa.error ""Exception: $errMsg""
        sendHttpErrorResponse ""Exception: $errMsg""
    }

  Problem: web::dispatch catches possible errors and modifies errorMessage
  -> the original errorMessage is not available anymore

  Suggestion: remove catch from web::dispatch or do not modify original
  error message

This bit of code above is specific to some app or another... what is
the real problem here?

What would be a simple test case to demonstrate the problem?

web::command default {
    BLARGH
}

if { [catch {web::dispatch} errmsg] } {
    # we signal every error to the client
    web::put $errmsg
    web::put $errmsg
}

Is something I've tried, but I don't quite see the problem...

-- 
David N. Welton
   Consulting: http://www.dedasys.com/
Free Software: http://people.debian.org/~davidw/
   Apache Tcl: http://tcl.apache.org/
     Personal: http://www.efn.org/~davidw/