Netflix/RxJava — pull request #1305 by abersnaze (2014-06-02 17:17:00+00:00)
Title: Checked Exceptions

This pull request:
* makes the Rx user's code cleaner.
* removes the necessity for wrapping all checked `Exception`s with `RuntimeException`s.
* is not a breaking change.
* lets the compiler help us find places where we've made mistakes.

It's benefit is more obvious in Java 8. before:
```
() -> {
try {
return new FileReader(file);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
```
after:
```
() -> new FileReader(file)
```

I made a new set of interfaces `Func<0..9,N>Checked` and `Action<0..9,N>Checked`. The original `Func<0..9,N>` and `Action<0..9,N>` now extend from the checked version but remove the `throws Exception`. Anywhere an observable operator already invokes `Func`s or `Action`s and already wraps that call in the try catch to handle Throwables than the checked version can be woven through.

I've also included a sample change where I used `Func1Checked` for `Observable::map(f)`.