proc ::tcl::dict::get? {args} { try { ::set x [dict get {*}$args] } on error message { ::set x {} } return $x } namespace ensemble configure dict -map [dict merge [namespace ensemble configure dict -map] {get? ::tcl::dict::get?}] ------ This should check the error message before unilaterally clearing the return value, but well, it work like this.