例外処理の使い方がいまいち分かりません

例外を投げたらその処理の中で解決した方が良いのか
それとも解決方法を使う側に投げっぱなしにしてしまうのか
例外をどういう形でthrowするのがいいのか

なんというか感覚的に掴みにくいというかなんというか