assertと非チェック例外を使うべき場面が自分には同じに見えてしまう
んですが、実際にはどのように使い分けるべきなんでしょうか?