- ベストアンサー
例外処理のフローチャートの記述方法
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
普通オブジェクト指向言語にフローは使わないんですけど、どうしてもフローで書く必要があるのならってことで。 tryブロックとctachブロックを「開いたサブルーチン」として捉えればブロックをサブルーチン記号で記述できます。 throwは「関数からの脱出」であることにかわりはありませんからreturnと同じ書き方でいいのではないでしょうか。 throwとcatchの関係はフローで書き表すことが困難(フローは関数ないロジックを記述するもので、関数間の関連を記述するのに向いていないため)ですからモジュール(関数)関連図などを別途要するべきでしょう。
その他の回答 (1)
- a-kuma
- ベストアンサー率50% (1122/2211)
フローチャートでは、例外にあたる記法は無いですね。 また、フローチャートなんかを使うところを見ると、それを読み書きする人たちは、あまり、 オブジェクト指向に馴染みがないのでしょうね。 「例外の送出」は、つまるところ「大域ジャンプ」ですから、フローチャートに慣れた人たちが 読むのであれば、throw を goto で、catch をラベルで書くのが分かりよいかも。 宛先のラベルの替わりに例外クラスを記述するようにして。 try だけは、書きようが無いですね。私は、コメント扱いにするのが良いと思います。 ひとつの処理ブロックとして別紙に書き表すというのでも良いのかもしれませんが、 try ブロックを狭く設計されちゃうと、却って読みづらくなりそうなので。
お礼
ご回答、ありがとうございました。 参考にさせて頂きます。 なんかバカにされているような気がするの言っておきますが、オブジェクト指向に 馴染みがないわけではありません!フローチャートを書くことは仕様で決まってい るので。。。
関連するQ&A
- PHPの例外処理
PHPの例外処理について教えてください function test() { try{ $a = 10; $b = 0; $result = $a/$b; } catch(Exception $e){ //エラー処理 } } 上記でcatchが実行されるためにはどのようにすれば良いでしょうか?例えば if($b == 0) { throw new Exception('例外'); } を「$result = $a/$b;」の前に書いておくなどすればcatchされるのはわかりますが、 想定されるすべての例外のthrow処理を記載するなんてことはしたくありません。 実行してエラーだったら自動的にthrowされる、なんていうことはPHPでは無理でしょうか?
- ベストアンサー
- PHP
- C++の例外処理について
C++にjavaのような例外処理ができるのを知りました 構文は try { stat1 } catch(except-decl) { stat2 } finally { stat3 } stat4 ただし stat1:例外が発生する可能性があるステートメント stat2:例外が発生したときに実行するステートメント stat3:例外が発生しなくても実行するステートメント stat4:ステートメント except-decl:捕獲する例外の宣言 です ここで質問です (1) 冷害が発生したときstat4は実行されるのでしょうか? されない場合にはその後どう言う処理がなされるのでしょうか? (2) except-declはどうのような記述がなされるのでしょうか? (4) 例外を発生させる構文 throw except (except:発生させる冷害) のexceptの部分にはどのような記述がなされるのでしょうか? よろしくお願いします
- ベストアンサー
- C・C++・C#
- UMLでの例外処理
UML(特にシーケンス図)の作成時に 例外処理をどのように記述すればよいかわかりません。 try-catchをシーケンス図上でどのように記述すればよろしいでしょうか? よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- 例外処理があまり使われない理由について
C++でのプログラミングに関して質問です。 只今勉強中で色々な方のソースを拝見していますが、 参考書や解説サイトにはよく載っている「例外処理(tryとかcatchとか)」を記述したソースを殆ど見ないのですが、 例外処理は使わない方がいいのでしょうか? (処理速度が遅くなるとか、gotoのような暗黙の使ってはいけない理由があるのですかね?) 私自身も面倒なので例外処理は今まで書いたことがないのですが、 例外処理を記述する癖をつけた方がいいでしょうか?
- 締切済み
- C・C++・C#
- 例外処理に関して
質問なのですが、よろしくお願い致します。 ファイルに空白行があった場合、任意に例外を発生させることをしているのですが、 (例外処理内容:ファイルにログを出力する) 例外が2回キャッチされているようで、2回目にファイル(ログファイル)は既に開かれています。というエラーが出ますが、以下のソースでは、呼出元と呼び出されたメソッドともに例外を処理してしまうのでしょうか? また、どう改善したらいいでしょうか? ご教授よろしくお願い致します。 呼出元 public Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Try Dim cls As New testClass cls.timer1() Catch e as Exception 'ログファイル出力 End Try End Sub 呼び出されるメソッド Public Sub Timer1() try FileOpen(1,"ファイルパス",OpenMode.Input) if Trim(LineInput(1)) = "" Then FileClose(1) Throw New Exception End If Catch e as Exception 'ログファイル出力 End Try End Sub
- ベストアンサー
- Visual Basic
- phpの例外処理がエラーをトラップしてくれない。
以下のように例外処理を記述しした場合、 try{ //ここでエラー } catch (Exception $e){ $ErrorMsg="その他エラー:".$e->getMessage(); } tryの中で、0除算によるエラーが発生してもエラーをトラップして、例外 処理のcatchに飛びません。 どのように記述すればエラーをトラップできるのでしょか?
- ベストアンサー
- PHP
- Javaの例外処理の書き方について
Javaの例外はErrorとRuntimeExceptionは書かなくてもいいが、 Exceptionはtryでcatchする必要があると聞きました。 しかし、java.langのStringを使っても例外処理は書きません。 なぜ、例外を書くやつと書かないやつがあるのですか? たとえば、java.langを使うとしたら、 ClassNotFoundException CloneNotSupportedException Exception の3つをjava.langを使うメソッドのブロックの上にtry文が必要だと思うのですが。
- ベストアンサー
- Java
- 例外処理がまったくわかりません!!
下のプログラミングについていくつか質問があります。 (1)etest()メソッドってなんですか? (2)存在しないファイルを開くってどういうことですか? (3)FileReader( )対応catch節、Close( )対応catch節ってなんですか? (4)あと、プログラミングあとの本の解説の部分がよくわかりません。抜粋してみます。 「一般的な例外クラスはxxxExceptionというクラス名をしています。このタイプの例外クラスはみな「Exception例外クラス」をスーパークラスにしています。この場合、「catch(Exception e)」を使うとすべてのxxxException例外を補足できるという仕様になっています。ですから下のetest( )メソッドは次のように、ひとつのcatch節で記述することができます。このようにしても表示される4エラーメッセージ(eで指示)は、正しく発生例外(FileNotFoundExceptionまたはIOException) 対応のものになります。」 public static void etest( ) { try { // try節を書く FileReader fr = new FileReader("xfile.txt"); } catch (FileNotFoundException e) { // FileReader( )対応catch節 System.out.println("例外1: " + e); // 例外情報を表示 return; // 戻る } catch (IOException e) { // Close( )対応catch節 System.out.println("例外2: " + e); // 例外情報を表示 return; // 戻る } System.out.println("ファイルは正しくオープンされました"); } } よろしくお願いします。
- ベストアンサー
- Java
お礼
返事が遅くなって申し訳ありません。 大変参考になりました。 ありがとうございます。 # 確かに普通オブジェクト指向言語にフローは使わないですよね # 書かないといけない状況なんですが、歯がゆい思いをしています。