{"action":"created","issue":{"url":"https://api.github.com/repos/ruby-json-schema/json-schema/issues/239","labels_url":"https://api.github.com/repos/ruby-json-schema/json-schema/issues/239/labels{/name}","comments_url":"https://api.github.com/repos/ruby-json-schema/json-schema/issues/239/comments","events_url":"https://api.github.com/repos/ruby-json-schema/json-schema/issues/239/events","html_url":"https://github.com/ruby-json-schema/json-schema/pull/239","id":60093685,"number":239,"title":"Only rescue errors explicitly","user":{"login":"iainbeeston","id":111963,"avatar_url":"https://avatars.githubusercontent.com/u/111963?v=3","gravatar_id":"","url":"https://api.github.com/users/iainbeeston","html_url":"https://github.com/iainbeeston","followers_url":"https://api.github.com/users/iainbeeston/followers","following_url":"https://api.github.com/users/iainbeeston/following{/other_user}","gists_url":"https://api.github.com/users/iainbeeston/gists{/gist_id}","starred_url":"https://api.github.com/users/iainbeeston/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iainbeeston/subscriptions","organizations_url":"https://api.github.com/users/iainbeeston/orgs","repos_url":"https://api.github.com/users/iainbeeston/repos","events_url":"https://api.github.com/users/iainbeeston/events{/privacy}","received_events_url":"https://api.github.com/users/iainbeeston/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-03-06T12:02:51Z","updated_at":"2015-06-03T11:58:50Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ruby-json-schema/json-schema/pulls/239","html_url":"https://github.com/ruby-json-schema/json-schema/pull/239","diff_url":"https://github.com/ruby-json-schema/json-schema/pull/239.diff","patch_url":"https://github.com/ruby-json-schema/json-schema/pull/239.patch"},"body":"Only rescue errors explicitly\r\n\r\nThere are a lot of places in the code where we rescue any error, at all.\r\nThat's quite dangerous, as it could conceal bugs.\r\n\r\nI've changed it so that we always specify which error class we want to\r\ncatch. Mostly it's been a minor change, but there are two API changes:\r\n\r\n* When it comes to loading data I've had to introduce an explicit list\r\n  of protocols which we can load json over (otherwise it's possible to\r\n  have a uri with a scheme that makes no sense - it'd still be a valid\r\n  uri but loading from it is impossible). I've used the list of\r\n  protocols that addressable recognizes for now.\r\n* No matter what JSON parser you use, we now always raise a\r\n  JSON::Schema::JsonParseError. Without doing this it would be tricky to\r\n  handle parser errors identically, for all parsers (the other option\r\n  would be to catch a long list of potential parse errors, but this\r\n  seems more sensible).\r\n"},"comment":{"url":"https://api.github.com/repos/ruby-json-schema/json-schema/issues/comments/108339590","html_url":"https://github.com/ruby-json-schema/json-schema/pull/239#issuecomment-108339590","issue_url":"https://api.github.com/repos/ruby-json-schema/json-schema/issues/239","id":108339590,"user":{"login":"RST-J","id":4967885,"avatar_url":"https://avatars.githubusercontent.com/u/4967885?v=3","gravatar_id":"","url":"https://api.github.com/users/RST-J","html_url":"https://github.com/RST-J","followers_url":"https://api.github.com/users/RST-J/followers","following_url":"https://api.github.com/users/RST-J/following{/other_user}","gists_url":"https://api.github.com/users/RST-J/gists{/gist_id}","starred_url":"https://api.github.com/users/RST-J/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RST-J/subscriptions","organizations_url":"https://api.github.com/users/RST-J/orgs","repos_url":"https://api.github.com/users/RST-J/repos","events_url":"https://api.github.com/users/RST-J/events{/privacy}","received_events_url":"https://api.github.com/users/RST-J/received_events","type":"User","site_admin":false},"created_at":"2015-06-03T11:58:50Z","updated_at":"2015-06-03T11:58:50Z","body":"I think we could add it right away, there is no reason to wait."}}