エラーの種類判別でいつもググってしまっているのでメモ。

広告

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型にあるわけではなさそうなので、どのエラー型なのかを把握しつつハンドリングする必要がありそうです。

広告

関連コンテンツと広告

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA