result-types

Never throw for expected failures. Use Result<T, E> types with explicit error handling and workflow composition.