atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
プログラミング図書館・本館
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
プログラミング図書館・本館
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
プログラミング図書館・本館
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • プログラミング図書館・本館
  • 例外処理

例外処理

最終更新:2011年01月25日 13:00

Bot(ページ名リンク)

- view
管理者のみ編集可
  • 2つのカテゴリ [#s3642dbd]
  • SystemException [#s0773bb3]
  • WPFでの未処理の例外
  • LINQでの例外処理


try-catch-finallyによって投げられた例外を受け取り処理することができます。


try{
	// ... 例外を発生させるような処理
	var datas = new object[10];
 
	var obj = datas[11]; // IndexOutOfRangeException 例外がスロー
}catch(IndexOutOfRangeException e){
	// 例外を対処するためのコード
}catch(Exception e){
	// 例外を対処するためのコード
}finally{
	// finallyブロックは、
	// 例外が発生しなかった場合でも呼び出される。
}
 

IndexOutOfRangeExceptionクラスはExceptionクラスをサブクラスに持つため、上記のように例外構文を記述した場合、両方の例外ブロックにマッチしますが、実行されるのは最初にマッチした例外ブロックのみです。


2つのカテゴリ [#s3642dbd]


SystemException
システムで使用される例外。ライブラリ間で共通されるべき例外。~
また、SystemExceptionをスーパークラスとして新たなシステム例外は作成してはいけません。
ApplicationException
アプリケーション固有の例外。開発者はこの例外を外部にスローしないように気をつける。~
ライブラリ開発でやむを得ず独自の例外が必要となった場合は、発生理由や例外の回避方法、復旧方法をできるだけ詳しいドキュメントで公開しておくべき。


SystemException [#s0773bb3]


通常のプログラム開発に於いて、開発者が利用するであろうシステム例外は下記の通りです。

ArgumentException メソッドに渡された引数が無効である場合にスローする。ただし、nullである場合を除く。
ArgumentNullException メソッドに渡された引数に、nullが含まれている場合にスローする。
IndexOutOfRangeException 配列やプロパティで連続したデータの範囲外にアクセス使用とした場合にスローする。
NotImplementedException 実装されていないメソッドである場合にスローする。

NotImplementedException例外は、開発者が本来実装しなければならない実装を、一時的に後回しにしてしまう場合に、「まだ実装してないことをマークし、例外として警告する」ために使用します。

interface IDataAccess {
	bool SaveEntity(Person data);
}
 
public class BackendDataAccess : IDataAccess {
	public bool SaveEntity(Person data) {
		// TODO: 開発チーム「佐藤くん」が実装予定のメソッドなので、
		//       今のところは未実装状態にしておきます。
		throw new NotImplementedException();
	}
}
}
 

WPFでの未処理の例外


未処理の例外があった場合、Application.DispatcherUnhandledExceptionイベントが呼び出される。

Handledプロパティを設定しないと、永久にDispatcherUnhandledExceptionイベントが呼び出してしまう例外もあるので注意。

private void OnDispatcherUnhandledException(object sender,
	System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) {
 
	e.Handled = true; // 例外を処理したことを通知
 
	Shutdown(); // アプリケーションを終了
}
 


LINQでの例外処理


LINQも例外を投げます。~
ただし、LINQは遅延実行を行うため、LINQを定義した場所に例外構文を記述するのではなくLINQを実行する箇所で例外をキャッチしなければなりません。

var b = from p in MyLists
		select p;
 
foreach(Data obj in b){
	Console.WriteLine(obj);
}
 

このように定義したLINQが実行時に発生する例外のキャッチには、次のようにforeachステートメントの部分で行います。

try{
	foreach(Data obj in b) {
		Console.WriteLine(obj);
	}
}catch(Exception e){
}
 
「例外処理」をウィキ内検索
LINE
シェア
Tweet

[Amazon商品]


プログラミング図書館・本館
記事メニュー

C#

  • 新機能
  • 言語文法
    • 型
    • 関数
    • クラス
    • 演算子
    • 構文
    • デリゲート
    • イベント
    • 例外処理
    • アトリビュート
    • 名前空間
    • ジェネリクス
  • リフレクション
  • LINQ

.NET Frameworks

  • 数値
  • 文字列
  • 日付時刻
  • オブジェクト
  • コレクション
  • ファイルシステム
  • スレッド
  • データテーブル
  • グラフィックス
  • デバッグ
    • ログ出力
    • ユニットテスト
  • ユーティリティ
  • ネットワーク
    • HTTP
  • デバイス
    • COMポート
  • EntityFrameworks
    • Code First Programming Model
  • デバイスドライバ
    • WinUSB

WPF

  • XAML
  • イベント
  • コマンド
  • スタイル
  • データバインディング
  • コンポーネント
  • グラフィックス
  • カスタムコンポーネント
    • 依存関係プロパティ

アプリケーション

  • 二重起動の防止
  • アンマネージドDLLの読み込み
  • 外部のアプリケーションを起動

VisualStudio

  • 拡張機能
  • カラー設定

ライブラリ

  • WPFToolkit
  • A Fast CSV Reader
  • AvalonDock

実装方法

  • ドラッグアンドドロップ
  • アプリケーション内のドラッグアンドドロップ
  • CSVからDataTable

minecraft

  • Bukkit
  • プラグイン
    • Permissions
    • SlowHealth
    • CookieMonster
    • iConomy
    • WorldGuard
    • Lockette
    • MyHome
    • BorderGuard

サイトについて

プロフィール/リンク/未分類

メモ/ゲーム/Stacks/Omoikane


更新履歴

取得中です。

ここを編集

記事メニュー2

読んでいる本


Effective C#

QLOOKアクセス解析

ここを編集

人気記事ランキング
  1. アプリケーション内のドラッグアンドドロップ
  2. iConomyプラグイン
  3. A Fast CSV Reader
  4. CookieMonsterプラグイン
  5. VisualStudio/拡張機能
  6. デリゲート
  7. WPF/グラフィックス
もっと見る
最近更新されたページ
  • 5100日前

    Bukkit
  • 5106日前

    トップページ
  • 5127日前

    メニュー
  • 5137日前

    WPF/グラフィックス
  • 5137日前

    .NET/グラフィックス
  • 5137日前

    .NET/グラフィックス/画像の書き込み
  • 5137日前

    .NET/グラフィックス/画像の読み込み
  • 5143日前

    .NET/コレクション
  • 5161日前

    .NET/WinUSB
  • 5196日前

    BorderGuardプラグイン
もっと見る
人気記事ランキング
  1. アプリケーション内のドラッグアンドドロップ
  2. iConomyプラグイン
  3. A Fast CSV Reader
  4. CookieMonsterプラグイン
  5. VisualStudio/拡張機能
  6. デリゲート
  7. WPF/グラフィックス
もっと見る
最近更新されたページ
  • 5100日前

    Bukkit
  • 5106日前

    トップページ
  • 5127日前

    メニュー
  • 5137日前

    WPF/グラフィックス
  • 5137日前

    .NET/グラフィックス
  • 5137日前

    .NET/グラフィックス/画像の書き込み
  • 5137日前

    .NET/グラフィックス/画像の読み込み
  • 5143日前

    .NET/コレクション
  • 5161日前

    .NET/WinUSB
  • 5196日前

    BorderGuardプラグイン
もっと見る
ウィキ募集バナー
急上昇Wikiランキング

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. MADTOWNGTAまとめwiki
  2. 20XX @ ウィキ
  3. 戦隊・ライダー:怪人まとめ@ ウィキ
  4. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  5. SDガンダム Gジェネレーションオーバーワールド 攻略Wiki
  6. NIKKEぺでぃあ
  7. オペラ対訳プロジェクト
  8. 役割論理専用wiki 
  9. とある魔術の禁書目録 Index
  10. 正田崇作品 @ ウィキ
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  6. 発車メロディーwiki
  7. オレカバトル アプリ版 @ ウィキ
  8. 検索してはいけない言葉 @ ウィキ
  9. モンスター烈伝オレカバトル2@wiki
  10. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
もっと見る
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. まどドラ攻略wiki
  3. ちいぽけ攻略
  4. シュガードール情報まとめウィキ
  5. SurrounDead 攻略 (非公式wiki)
  6. 20XX @ ウィキ
  7. 戦国ダイナスティ攻略@ウィキ
  8. ソニックレーシング クロスワールド @ ウィキ
  9. Shoboid RPまとめwiki
  10. シミュグラ2Wiki(Simulation Of Grand2)GTARP
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - MadTown GTA (Beta) まとめウィキ
  2. やなせたかし - アニヲタWiki(仮)
  3. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  4. 参加者一覧 - MADTOWNGTAまとめwiki
  5. 参加者一覧 - ストグラ まとめ @ウィキ
  6. スーパーロボット大戦Y - アニヲタWiki(仮)
  7. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
  8. 模擬ドラフト結果 - おんJ模擬ドラフトまとめwiki
  9. 機体一覧 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  10. 駆動方式(自動車) - アニヲタWiki(仮)
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.