timols / java-gitlab-api

A wrapper for the Gitlab API written in Java
Apache License 2.0
383 stars 317 forks source link

RuntimeException thrown when IOException occurs on HTTPRequestor level #337

Open islandsvinur opened 5 years ago

islandsvinur commented 5 years ago

When requesting the merge requests for a non existing project, e.g. /api/v4/projects/42/merge_requests, the FileNotFoundException caught in GitlabHTTPRequestor is wrapped in a RuntimeException and thrown out uncaught.

I propose to replace the RuntimeException with UncheckedIOException, then catch the UncheckedIOException, unwrap and rethrow the IOException at the API border. This way consumers of the API know exactly what happened to them.

In 4.0.0 threw an Error and was improved in 4.1.0 to throw RuntimeException (#281), so threads are not killed.

I can prepare a PR if you like the proposal.

timols commented 5 years ago

Yep, I think that makes sense. Thanks for submitting the PR!