API作るとき、エラーリターンと例外処理の使い分けってどうしてる?

こういうときはエラー値を返す、こういうときは例外を投げるべき
みたいな簡単なガイドラインないかな
なんでもポンポン例外投げたくなるけど使うとき困るし