should raise named exception instead of RuntimeException