Fixed error message formatting bug

This commit is contained in:
JeffreyRichter 2018-06-07 14:19:23 -07:00
Родитель 098e490af5
Коммит 7571e8eb08
1 изменённых файлов: 4 добавлений и 4 удалений

Просмотреть файл

@ -21,13 +21,13 @@ type ErrorNode struct {
// Error returns a string with the PC's symbols or "" if the PC is invalid. // Error returns a string with the PC's symbols or "" if the PC is invalid.
// When defining a new error type, have its Error method call this one passing // When defining a new error type, have its Error method call this one passing
// it the string representation of the error. // it the string representation of the error.
func (e *ErrorNode) Error(format string, v ...interface{}) string { func (e *ErrorNode) Error(msg string) string {
s := "" s := ""
if fn := runtime.FuncForPC(e.pc); fn != nil { if fn := runtime.FuncForPC(e.pc); fn != nil {
file, line := fn.FileLine(e.pc) file, line := fn.FileLine(e.pc)
s = fmt.Sprintf("-> %v, %v:%v\n", fn.Name(), file, line) s = fmt.Sprintf("-> %v, %v:%v\n", fn.Name(), file, line)
} }
s += fmt.Sprintf(format, v...) + "\n\n" s += msg + "\n\n"
if e.cause != nil { if e.cause != nil {
s += e.cause.Error() + "\n" s += e.cause.Error() + "\n"
} }
@ -103,10 +103,10 @@ func Cause(err error) error {
// NewError creates a simple string error (like Error.New). But, this // NewError creates a simple string error (like Error.New). But, this
// error also captures the caller's Program Counter and the preceding error. // error also captures the caller's Program Counter and the preceding error.
func NewError(cause error, format string, v ...interface{}) error { func NewError(cause error, msg string) error {
return &pcError{ return &pcError{
ErrorNode: ErrorNode{}.Initialize(cause, 3), ErrorNode: ErrorNode{}.Initialize(cause, 3),
msg: fmt.Sprintf(format, v...), msg: msg,
} }
} }