.NET Frameworkのアセンブリ「System.dll」に定義されている例外クラス(Exception)の一覧です。
目次
- 1 System
- 1.1 UriFormatException
- 1.2 InvalidAsynchronousStateException
- 1.3 InvalidEnumArgumentException
- 1.4 LicenseException
- 1.5 WarningException
- 1.6 Win32Exception
- 1.7 CheckoutException
- 1.8 ConfigurationException
- 1.9 SettingsPropertyIsReadOnlyException
- 1.10 SettingsPropertyNotFoundException
- 1.11 SettingsPropertyWrongTypeException
- 1.12 InternalBufferOverflowException
- 1.13 InvalidDataException
- 1.14 CookieException
- 1.15 HttpListenerException
- 1.16 ProtocolViolationException
- 1.17 WebException
- 1.18 SmtpException
- 1.19 SmtpFailedRecipientException
- 1.20 SmtpFailedRecipientsException
- 1.21 NetworkInformationException
- 1.22 PingException
- 1.23 SocketException
- 1.24 WebSocketException
- 1.25 AuthenticationException
- 1.26 InvalidCredentialException
- 1.27 RegexMatchTimeoutException
- 1.28 BarrierPostPhaseException
System
アセンブリ: System.dll
System に定義されている例外クラス(Exception)は以下になります。
UriFormatException
無効な URI (Uniform Resource Identifier) が検出された場合にスローされる例外です。
名前空間: System
クラス名: UriFormatException
既定のメッセージ
識別された項目のうち 1 つが無効な形式です。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.UriFormatException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.UriFormatException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
InvalidAsynchronousStateException
操作を実行するスレッドが存在しない場合、またはスレッドにメッセージ ループがない場合にスローされる例外です。
名前空間: System.ComponentModel
クラス名: InvalidAsynchronousStateException
既定のメッセージ
種類 ‘System.ComponentModel.InvalidAsynchronousStateException’ の例外がスローされました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.ComponentModel.InvalidAsynchronousStateException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.ComponentModel.InvalidAsynchronousStateException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
InvalidEnumArgumentException
引数として使用した列挙値が無効な場合にスローされる例外です。
名前空間: System.ComponentModel
クラス名: InvalidEnumArgumentException
既定のメッセージ
種類 ‘System.ComponentModel.InvalidEnumArgumentException’ の例外がスローされました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.ComponentModel.InvalidEnumArgumentException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.ComponentModel.InvalidEnumArgumentException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
LicenseException
コンポーネントにライセンスが与えられなかった場合にスローされる例外です。
名前空間: System.ComponentModel
クラス名: LicenseException
既定のメッセージ
なし
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.ComponentModel.LicenseException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.ComponentModel.LicenseException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
WarningException
エラーではなく警告として処理される例外です。
名前空間: System.ComponentModel
クラス名: WarningException
既定のメッセージ
種類 ‘System.ComponentModel.WarningException’ の例外がスローされました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.ComponentModel.WarningException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.ComponentModel.WarningException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
Win32Exception
Win32 エラー コードがスローされる例外です。
名前空間: System.ComponentModel
クラス名: Win32Exception
既定のメッセージ
この操作を正しく終了しました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.ComponentModel.Win32Exception ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.ComponentModel.Win32Exception ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
CheckoutException
ソース コード管理プログラムにチェックインされているファイルのチェックアウトをキャンセルするか、チェックアウトが失敗した場合にスローされる例外です。
名前空間: System.ComponentModel.Design
クラス名: CheckoutException
既定のメッセージ
外部コンポーネントが例外をスローしました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.ComponentModel.Design.CheckoutException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.ComponentModel.Design.CheckoutException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
ConfigurationException
構成システムのエラーが発生したときにスローされる例外です。
名前空間: System.Configuration
クラス名: ConfigurationException
既定のメッセージ
種類 ‘System.Configuration.ConfigurationException’ の例外がスローされました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Configuration.ConfigurationException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Configuration.ConfigurationException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
SettingsPropertyIsReadOnlyException
読み取り専用の SettingsProperty (SettingsBase) の値を変更しようとしたときにスローされる例外です。
名前空間: System.Configuration
クラス名: SettingsPropertyIsReadOnlyException
既定のメッセージ
種類 ‘System.Configuration.SettingsPropertyIsReadOnlyException’ の例外がスローされました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Configuration.SettingsPropertyIsReadOnlyException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Configuration.SettingsPropertyIsReadOnlyException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
SettingsPropertyNotFoundException
名前によってSettingsBaseのプロパティにアクセスしようとしたが、プロパティがSettingsBaseクラスのインスタンスに関連付けられていないか、またはプロパティ用に構成されたプロバイダーが、要求されたときに値を返さなかった場合にスローされる例外です。
名前空間: System.Configuration
クラス名: SettingsPropertyNotFoundException
既定のメッセージ
種類 ‘System.Configuration.SettingsPropertyNotFoundException’ の例外がスローされました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Configuration.SettingsPropertyNotFoundException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Configuration.SettingsPropertyNotFoundException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
SettingsPropertyWrongTypeException
SettingsProperty オブジェクトで無効な型が使用された場合にスローされる例外です。
名前空間: System.Configuration
クラス名: SettingsPropertyWrongTypeException
既定のメッセージ
種類 ‘System.Configuration.SettingsPropertyWrongTypeException’ の例外がスローされました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Configuration.SettingsPropertyWrongTypeException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Configuration.SettingsPropertyWrongTypeException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
InternalBufferOverflowException
内部バッファーがオーバーフローした場合にスローされる例外です。
名前空間: System.IO
クラス名: InternalBufferOverflowException
既定のメッセージ
システム エラーです。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.IO.InternalBufferOverflowException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.IO.InternalBufferOverflowException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
InvalidDataException
データ ストリームが無効な形式である場合にスローされる例外です。
名前空間: System.IO
クラス名: InvalidDataException
既定のメッセージ
デコード中に無効なデータが見つかりました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.IO.InvalidDataException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.IO.InvalidDataException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
CookieException
Cookie を CookieContainer に追加するときにエラーが発生した場合にスローされる例外です。
名前空間: System.Net
クラス名: CookieException
既定のメッセージ
識別された項目のうち 1 つが無効な形式です。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Net.CookieException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Net.CookieException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
HttpListenerException
HTTP 要求の処理中にエラーが発生するとスローされる例外です。
名前空間: System.Net
クラス名: HttpListenerException
既定のメッセージ
この操作を正しく終了しました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Net.HttpListenerException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Net.HttpListenerException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
ProtocolViolationException
ネットワーク プロトコルの使用中にエラーが発生した場合にスローされる例外です。
名前空間: System.Net
クラス名: ProtocolViolationException
既定のメッセージ
オブジェクトの現在の状態に問題があるため、操作は有効ではありません。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Net.ProtocolViolationException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Net.ProtocolViolationException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
WebException
プラグ可能プロトコルによるネットワークへのアクセスでエラーが発生した場合にスローされる例外です。
名前空間: System.Net
クラス名: WebException
既定のメッセージ
オブジェクトの現在の状態に問題があるため、操作は有効ではありません。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Net.WebException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Net.WebException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
SmtpException
SmtpClient が 送信操作 (Send) または 非同期送信操作 (SendAsync) を完了できない場合にスローされる例外です。
名前空間: System.Net.Mail
クラス名: SmtpException
既定のメッセージ
構文エラーです。コマンドが認識できません。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Net.Mail.SmtpException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Net.Mail.SmtpException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
SmtpFailedRecipientException
特定の受信者への送信操作 (Send) または 非同期送信操作 (SendAsync) を SmtpClient が完了できない場合にスローされる例外です。
名前空間: System.Net.Mail
クラス名: SmtpFailedRecipientException
既定のメッセージ
構文エラーです。コマンドが認識できません。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Net.Mail.SmtpFailedRecipientException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Net.Mail.SmtpFailedRecipientException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
SmtpFailedRecipientsException
SmtpClient を使用して電子メールを送信し、その電子メールがすべての受信者に配信できない場合にスローされる例外です。
名前空間: System.Net.Mail
クラス名: SmtpFailedRecipientsException
既定のメッセージ
構文エラーです。コマンドが認識できません。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Net.Mail.SmtpFailedRecipientsException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Net.Mail.SmtpFailedRecipientsException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
NetworkInformationException
ネットワーク情報の取得中にWin32関数への呼び出しが失敗し、エラーが発生するとスローされる例外です。
名前空間: System.Net.NetworkInformation
クラス名: NetworkInformationException
既定のメッセージ
指定されたファイルが見つかりません。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Net.NetworkInformation.NetworkInformationException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Net.NetworkInformation.NetworkInformationException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
PingException
Ping の Send メソッドまたは SendAsync メソッドが、例外をスローするメソッドを呼び出したときにスローされる例外です。
名前空間: System.Net.NetworkInformation
クラス名: PingException
既定のメッセージ
なし
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Net.NetworkInformation.PingException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Net.NetworkInformation.PingException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
SocketException
ソケット エラーが発生したときにスローされる例外です。
名前空間: System.Net.Sockets
クラス名: SocketException
既定のメッセージ
この操作を正しく終了しました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Net.Sockets.SocketException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Net.Sockets.SocketException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
WebSocketException
WebSocket が接続操作を実行したときにエラーが発生した場合にスローされる例外です。
名前空間: System.Net.WebSockets
クラス名: WebSocketException
既定のメッセージ
この操作を正しく終了しました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Net.WebSockets.WebSocketException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Net.WebSockets.WebSocketException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
AuthenticationException
認証ストリームの認証が失敗した場合にスローされる例外です。
名前空間: System.Security.Authentication
クラス名: AuthenticationException
既定のメッセージ
システム エラーです。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Security.Authentication.AuthenticationException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Security.Authentication.AuthenticationException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
InvalidCredentialException
認証ストリームの認証が失敗してこの認証を再試行できない場合にスローされる例外です。
名前空間: System.Security.Authentication
クラス名: InvalidCredentialException
既定のメッセージ
システム エラーです。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Security.Authentication.InvalidCredentialException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Security.Authentication.InvalidCredentialException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
RegexMatchTimeoutException
正規表現パターン一致メソッドの実行時間が、タイムアウト間隔を超えるとスローされる例外です。
名前空間: System.Text.RegularExpressions
クラス名: RegexMatchTimeoutException
既定のメッセージ
操作がタイムアウトしました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Text.RegularExpressions.RegexMatchTimeoutException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Text.RegularExpressions.RegexMatchTimeoutException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
BarrierPostPhaseException
Barrier のフェーズ後アクションに失敗したときにスローされる例外です。
名前空間: System.Threading
クラス名: BarrierPostPhaseException
既定のメッセージ
postPhaseAction は例外により失敗しました。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { // 処理コードをここに記述する... } catch (System.Threading.BarrierPostPhaseException ex) { // 例外発生時に処理されるコードをここに記述する... } finally { // 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... } |
1 2 3 4 5 6 7 |
Try ' 処理コードをここに記述する... Catch ex As System.Threading.BarrierPostPhaseException ' 例外発生時に処理されるコードをここに記述する... Finally ' 例外発生の有無にかかわらず最後に処理されるコードをここに記述する... End Try |
他のアセンブリの例外一覧については、以下の記事をご覧ください。