func TransactionNoticeError(id int64, exceptionType, errorMessage, stackTrace, stackFrameDelim string) (int, error) {
	cexceptionType := C.CString(exceptionType)
	defer C.free(unsafe.Pointer(cexceptionType))

	cerrorMessage := C.CString(errorMessage)
	defer C.free(unsafe.Pointer(cerrorMessage))

	cstackTrace := C.CString(stackTrace)
	defer C.free(unsafe.Pointer(cstackTrace))

	cstackFrameDelim := C.CString(stackFrameDelim)
	defer C.free(unsafe.Pointer(cstackFrameDelim))

	return errNo(C.newrelic_transaction_notice_error(C.long(id), cexceptionType, cerrorMessage, cstackTrace, cstackFrameDelim))
}
func TransactionNoticeError(id int64, exceptionType, errorMessage, stackTrace, stackFrameDelim string) (int, error) {
	cexceptionType := C.CString(exceptionType)
	defer C.free(unsafe.Pointer(cexceptionType))

	cerrorMessage := C.CString(errorMessage)
	defer C.free(unsafe.Pointer(cerrorMessage))

	cstackTrace := C.CString(stackTrace)
	defer C.free(unsafe.Pointer(cstackTrace))

	cstackFrameDelim := C.CString(stackFrameDelim)
	defer C.free(unsafe.Pointer(cstackFrameDelim))

	return errNo(C.newrelic_transaction_notice_error(C.long(id), cexceptionType, cerrorMessage, cstackTrace, cstackFrameDelim))
}
/*
 * Identify an error that occurred during the transaction. The first identified
 * error is sent with each transaction.
 *
 * @param transaction_id  id of transaction
 * @param exception_type  type of exception that occurred
 * @param error_message  error message
 * @param stack_trace  stacktrace when error occurred
 * @param stack_frame_delimiter  delimiter to split stack trace into frames
 * @return  0 on success, else negative warning code or error code
 */