例外発生させた学生はどうなってまうん?

大学での学生の研究はだいたい以下の様に進められる。

def 研究(学生, 研究室):
  指導教官 = 研究室.指導教官(学生)

  while True:
    テーマ = 学生.テーマ決め(指導教官)
    if 研究室.研究会(テーマ) or 研究室.時間がやばい("テーマ決め”):
      break

  while True:
    成果 = 学生.研究(研究室, 指導教官, テーマ)
    if 研究室.研究会(成果) or 研究室.時間がやばい("研究"):
      break

  while True:
    論文 = 学生.論文執筆(指導教官, 成果)
    if 指導教官.添削(論文) or 研究室.時間がやばい("論文")
      break

  return 論文

次のような着目すべき点がある

  • テーマ決めメソッドは学生に定義されている
    • しかし、内部で指導教官に委譲することも可能
    • テーマが決まるまでは、延々とループを繰り返すが時間が迫ってくるととりあえず今のテーマでいこうかという話になる
  • 研究メソッドも学生に定義されている
    • しかし、内部では委譲することも可能
    • 成果が十分な水準になるまで進めないが、こちらも時間が迫るともうこれでいいよという話になる
  • 論文執筆も同様

また特筆すべき点として

  • テーマ決め研究論文執筆学生が例外を発生させる可能性があることが考慮されていない

そして

  • 例外を発生させた学生がどうなるかは残念ながら未定義である。