// ==========================================================================
// $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:")
}


