質問させてください。
例外処理で言う例外というのは「エラー」に限定して捉えた方が
いいのでしょうか?それとも呼び出し側の関数からみて想定していない
動作が起こる場合も例外として捉えていいのでしょうか?

言葉でうまく説明できないのですが下のような設計(麻雀)は例外処理の使い方として
あるべき姿かどうか教えてください。

ゲーム管理=順番や牌の受け渡しを管理する

プレイヤ=ゲーム管理から渡された牌に基づき手を作る

ゲーム管理がプレイヤへツモ牌を渡して、戻り値として捨て牌を要求

ゲーム管理側にすれば捨て牌が戻ってくるのが想定している動作

一方、プレイヤ側からすれば、捨て牌がない場合もある(渡されたツモ牌で和了する場合、カンをしたい場合など)

これを解決する方法として、和了例外、カン例外を用意してプレイヤ側がゲーム管理側に自分の判断を通知


例外を使わない場合よりもすっきり書けそう、という理由でこのようなやり方にしようと思ったのですが
エラー処理以外に例外を使用してもいいのだろうか?という疑問がありましてこれを採用してもいいのか迷っています。