Documentation
¶
Overview ¶
This package illustrates how basic try-catch exception handling can be emulated using goroutines, channels, and closures.
This package is *not* intended as a general exception handler library.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Exception ¶
type Exception struct {
Value interface{} // Value may be the nil exception
}
An Exception carries an exception value.
func Try ¶
Try invokes a function f with a Handler to throw exceptions. The function f may terminate abnormally with an arbitrary exception x by calling throw(x) within f. If an exception is thrown, Try returns an *Exception; otherwise it returns nil.
Usage pattern:
if x := exception.Try(func(throw exception.Handler) { ... throw(42); // terminate f by throwing exception 42 ... }); x != nil { // catch exception, e.g. print it fmt.Println(x.Value); }
Alternative:
exception.Try(func(throw exception.Handler) { ... throw(42); // terminate f by throwing exception 42 ... }).Catch(func (x interface{}) { // catch exception, e.g. print it fmt.Println(x); })
Click to show internal directories.
Click to hide internal directories.