// ========================================================================== // $Id: recovery.go,v 1.1 2014/03/31 21:34:24 jlang Exp $ // CSI2120 GO: Panic and recovery // ========================================================================== // (C)opyright: // // Jochen Lang // EECS, University of Ottawa // 800 King Edward Ave. // Ottawa, On., K1N 6N5 // Canada. // http://www.eecs.uottawa.ca // // Creator: Jochen Lang (based on example by R. Laganiere) // Email: jlang@eecs.uottawa.ca // ========================================================================== // $Log: recovery.go,v $ // Revision 1.1 2014/03/31 21:34:24 jlang // "Added examples for file I/O, methods, interfaces" // // ========================================================================== package main import "fmt" func causePanic() { panic("Caused panic") } func foo() { defer func() { if err := recover(); err != nil { fmt.Printf("Recovered from >> %s <<\n", err) } }() causePanic() fmt.Println("Regular after panic") // not shown } func main() { fmt.Println("In main:") foo() fmt.Println("End main:") }