Skip to content

proposal: text/template: export error type for missingkey #57801

@sding3

Description

@sding3

There is currently not an easy way to test for missing key error from text/template in the case that that the template was constructed with the missingkey=error option.

I propose adding a new error type in text/template testable via errors.As and the missing key can be recovered:

type MissingKeyError struct {
    Key string
}

func (e MissingKeyError) Error() string {
    return "no entry for key"
}

This would be added in a way that doesn't cause the existing error's string representation to change, allowing any users that might be checking for certain sub-string in the error strings to gracefully transition to the new way.


Edit: changed fmt.Errorf to errors.New
Edit: took suggestion from @icholy to have the error be a struct type, allowing users to be able to recover the offending key.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Incoming

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions