github.com/Axway/agent-sdk@v1.1.101/pkg/util/panichandler.go (about)

     1  package util
     2  
     3  import (
     4  	"fmt"
     5  	"reflect"
     6  	"strings"
     7  
     8  	"github.com/Axway/agent-sdk/pkg/util/log"
     9  )
    10  
    11  // HandleInterfaceFuncNotImplemented - use this function to recover from a panic due to an interface not being implemented
    12  func HandleInterfaceFuncNotImplemented(obj interface{}, funcName, interfaceName string) {
    13  	if interfaceObj := recover(); interfaceObj != nil {
    14  		errStr := fmt.Sprintf("%v", interfaceObj)
    15  
    16  		// an interface problem will contain this string...
    17  		if strings.Contains(errStr, "nil pointer dereference") {
    18  			log.Warnf("The function '%s' for interface '%s' is not implemented in %s.", funcName, interfaceName, reflect.TypeOf(obj).String())
    19  		}
    20  	}
    21  }