]> Cypherpunks repositories - gostls13.git/commitdiff
Remove exp/exception as it's no longer relevant
authorChristopher Wedgwood <cw@f00f.org>
Tue, 13 Apr 2010 00:51:35 +0000 (10:51 +1000)
committerAndrew Gerrand <adg@golang.org>
Tue, 13 Apr 2010 00:51:35 +0000 (10:51 +1000)
R=gri, adg
CC=golang-dev, r, rsc
https://golang.org/cl/857048

src/pkg/Makefile
src/pkg/exp/exception/Makefile [deleted file]
src/pkg/exp/exception/exception.go [deleted file]
src/pkg/exp/exception/exception_test.go [deleted file]

index d7365bfd9ea0a69a7c52bc63c9c13b3dcb440268..4057ed97d183d5dbff562be0599fdc41bca2ac3f 100644 (file)
@@ -67,7 +67,6 @@ DIRS=\
        exp/datafmt\
        exp/draw\
        exp/eval\
-       exp/exception\
        exp/iterable\
        expvar\
        flag\
diff --git a/src/pkg/exp/exception/Makefile b/src/pkg/exp/exception/Makefile
deleted file mode 100644 (file)
index 19c8663..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# Copyright 2009 The Go Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file.
-
-include ../../../Make.$(GOARCH)
-
-TARG=exp/exception
-GOFILES=\
-       exception.go\
-
-include ../../../Make.pkg
diff --git a/src/pkg/exp/exception/exception.go b/src/pkg/exp/exception/exception.go
deleted file mode 100644 (file)
index e34d0f0..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// 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.
-//
-package exception
-
-import (
-       "fmt"
-       "runtime"
-)
-
-// A Handler function handles an arbitrary exception value x.
-type Handler func(x interface{})
-
-// An Exception carries an exception value.
-type Exception struct {
-       Value interface{} // Value may be the nil exception
-}
-
-// 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);
-//     })
-//
-func Try(f func(throw Handler)) *Exception {
-       h := make(chan *Exception)
-
-       // execute try block
-       go func() {
-               f(func(x interface{}) {
-                       h <- &Exception{x}
-                       runtime.Goexit()
-               })
-               h <- nil // clean termination
-       }()
-
-       return <-h
-}
-
-
-// If x != nil, Catch invokes f with the exception value x.Value.
-// See Try for usage patterns.
-func (x *Exception) Catch(f Handler) {
-       if x != nil {
-               f(x.Value)
-       }
-}
-
-
-func (x *Exception) String() string {
-       if x != nil {
-               return fmt.Sprintf("exception: %v", x.Value)
-       }
-       return ""
-}
diff --git a/src/pkg/exp/exception/exception_test.go b/src/pkg/exp/exception/exception_test.go
deleted file mode 100644 (file)
index b7b106d..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package exception
-
-import "testing"
-
-func TestNoException(t *testing.T) {
-       e := Try(func(throw Handler) {})
-       if e != nil {
-               t.Fatalf("no exception expected, found: %v", e)
-       }
-}
-
-
-func TestNilException(t *testing.T) {
-       e := Try(func(throw Handler) { throw(nil) })
-       if e == nil {
-               t.Fatalf("exception expected", e)
-       }
-       if e.Value != nil {
-               t.Fatalf("nil exception expected, found: %v", e)
-       }
-}
-
-
-func TestTry(t *testing.T) {
-       s := 0
-       for i := 1; i <= 10; i++ {
-               e := Try(func(throw Handler) {
-                       if i%3 == 0 {
-                               throw(i)
-                               panic("throw returned")
-                       }
-               })
-               if e != nil {
-                       s += e.Value.(int)
-               }
-       }
-       result := 3 + 6 + 9
-       if s != result {
-               t.Fatalf("expected: %d, found: %d", result, s)
-       }
-}
-
-
-func TestCatch(t *testing.T) {
-       s := 0
-       for i := 1; i <= 10; i++ {
-               Try(func(throw Handler) {
-                       if i%3 == 0 {
-                               throw(i)
-                       }
-               }).Catch(func(x interface{}) { s += x.(int) })
-       }
-       result := 3 + 6 + 9
-       if s != result {
-               t.Fatalf("expected: %d, found: %d", result, s)
-       }
-}