sentinel errors
io.EOF のように例外を表すというより制御フローを導くシグナルとしてのエラーの分類
The name descends from the practice in computer programming of using a specific value to signify that no further processing is possible. So to with Go, we use specific values to signify an error.
Examples include values like io.EOF or low level errors like the constants in the syscall package, like syscall.ENOENT.