Yeah, I think for now I'm leaning toward keeping it simple:
```ruby
raise ArgumentError, "No path or io provided." if path_or_io.nil?
raise ArgumentError, "No block given. Cannot yield io stream." unless block_given?
```