エラーの種類判別でいつもググってしまっているのでメモ。
広告
kindメソッド
Rustのstd::io::Error
には、kind
メソッドがあります。これはstd::io::ErrorKind
というEnumを返します。これを使うとエラーの種類を判別できます。
エラーの種類判別
大体以下のコードのような感じで書けます。
if err.kind() == std::io::ErrorKind::エラーの種類(ex. AlreadyExists) {
//その種類のエラーだった時にやりたいこと
}
std::io::ErrorKindはわかりやすさのために入れていますが、省略したい場合は
use std::io::ErrorKind
とインポートしておけばよいと思われます。
その他
ぐぐったところだとFailureというのにもこういうのはあるっぽい…? ただ、どうもすべてのError型にあるわけではなさそうなので、どのエラー型なのかを把握しつつハンドリングする必要がありそうです。