From f29182fed42fde040b83abe7eb203faf5e2a04b8 Mon Sep 17 00:00:00 2001 From: Carlos Galindo Date: Thu, 5 Dec 2019 13:01:29 +0000 Subject: [PATCH] new graphs --- img/try-catch-example.dot | 40 ++++++++++++++++++++++++++++++++++++++ img/try-catch-example.pdf | Bin 0 -> 18546 bytes 2 files changed, 40 insertions(+) create mode 100644 img/try-catch-example.dot create mode 100644 img/try-catch-example.pdf diff --git a/img/try-catch-example.dot b/img/try-catch-example.dot new file mode 100644 index 0000000..da882c1 --- /dev/null +++ b/img/try-catch-example.dot @@ -0,0 +1,40 @@ +digraph G { + subgraph a { + enter [shape=rect]; + exit [shape=rect]; + enter -> try; + try -> X -> f; + f [label = y_in = y
f()>]; + f -> { "normal return"; catch; }; + "normal return" -> "x = x_out" -> Y -> Z; + catch -> "y = y_out" -> "print(error)" -> Z -> "normal exit" -> exit; + { edge [style = dashed, constraint = false]; + enter -> exit; + try -> Z; + catch -> Z; + "normal return" -> Z; + } + } + + subgraph b { + method [label="Start", shape=rect]; + t [label = "try"]; + x [label = "X"]; + x_in [label = "x_in = x"]; + y_in [label = "y_in = y"]; + call [label = "f()"]; + nr [style=dashed]; + data [style=dashed, label = "x = x_out"]; + y [label = "Y"]; + c [label = "catch"]; + data_catch [style=dashed,label="y = y_out"]; + print [label = "print(error)"]; + z [label = "Z"]; + ne [style=dashed, label = "normal exit"]; + method -> {t z ne}; + t -> {x call} + call -> {x_in y_in nr c} + nr -> {data y} + c -> {data_catch print} + } +} \ No newline at end of file diff --git a/img/try-catch-example.pdf b/img/try-catch-example.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6f69f06ca835144e4763c2054ed3c7ee88fec0a0 GIT binary patch literal 18546 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%0D^)D*T1S_lB+6-1Bz8ccq;$>n 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