{"action":"created","issue":{"url":"https://api.github.com/repos/mxcl/PromiseKit/issues/199","labels_url":"https://api.github.com/repos/mxcl/PromiseKit/issues/199/labels{/name}","comments_url":"https://api.github.com/repos/mxcl/PromiseKit/issues/199/comments","events_url":"https://api.github.com/repos/mxcl/PromiseKit/issues/199/events","html_url":"https://github.com/mxcl/PromiseKit/issues/199","id":86332129,"number":199,"title":"'catch' is now a reserved keyword in Swift 2.0, making it invalid for use as a method name","user":{"login":"apendley","id":1042513,"avatar_url":"https://avatars.githubusercontent.com/u/1042513?v=3","gravatar_id":"","url":"https://api.github.com/users/apendley","html_url":"https://github.com/apendley","followers_url":"https://api.github.com/users/apendley/followers","following_url":"https://api.github.com/users/apendley/following{/other_user}","gists_url":"https://api.github.com/users/apendley/gists{/gist_id}","starred_url":"https://api.github.com/users/apendley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apendley/subscriptions","organizations_url":"https://api.github.com/users/apendley/orgs","repos_url":"https://api.github.com/users/apendley/repos","events_url":"https://api.github.com/users/apendley/events{/privacy}","received_events_url":"https://api.github.com/users/apendley/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":22,"created_at":"2015-06-08T21:09:05Z","updated_at":"2015-09-20T05:55:30Z","closed_at":"2015-08-02T07:18:09Z","body":"Propose renaming to \"failed\" or something similar."},"comment":{"url":"https://api.github.com/repos/mxcl/PromiseKit/issues/comments/141752007","html_url":"https://github.com/mxcl/PromiseKit/issues/199#issuecomment-141752007","issue_url":"https://api.github.com/repos/mxcl/PromiseKit/issues/199","id":141752007,"user":{"login":"mythz","id":89361,"avatar_url":"https://avatars.githubusercontent.com/u/89361?v=3","gravatar_id":"","url":"https://api.github.com/users/mythz","html_url":"https://github.com/mythz","followers_url":"https://api.github.com/users/mythz/followers","following_url":"https://api.github.com/users/mythz/following{/other_user}","gists_url":"https://api.github.com/users/mythz/gists{/gist_id}","starred_url":"https://api.github.com/users/mythz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mythz/subscriptions","organizations_url":"https://api.github.com/users/mythz/orgs","repos_url":"https://api.github.com/users/mythz/repos","events_url":"https://api.github.com/users/mythz/events{/privacy}","received_events_url":"https://api.github.com/users/mythz/received_events","type":"User","site_admin":false},"created_at":"2015-09-20T05:55:30Z","updated_at":"2015-09-20T05:55:30Z","body":"Went to upgrade to Swift 2.0 and just found out `catch` was renamed to `report` which IMO is an unfamiliar and non-obvious replacement for `catch` that I don't think has any association with error handling. \r\n\r\nLooking at the existing naming used in a popular Promises like API like [jQuery ajax](http://api.jquery.com/jquery.ajax/), it uses `fail` for `catch` and `always` for `finally`:\r\n\r\n```js\r\nvar jqxhr = $.ajax( \"example.php\" )\r\n  .done(function() {\r\n    alert( \"success\" );\r\n  })\r\n  .fail(function() {\r\n    alert( \"error\" );\r\n  })\r\n  .always(function() {\r\n    alert( \"complete\" );\r\n  });\r\n```\r\n\r\nIt also uses `done` for complete and `then` for chaining which supports an overload for both success and failed callbacks. This API is also what's defined in [ES6 Promises API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then):\r\n\r\n```js\r\np.then(function(value) {\r\n  console.log(value); // Success!\r\n}, function(reason) {\r\n  console.log(reason); // Error!\r\n});\r\n```\r\n\r\nFWIW I think your earlier suggestions of:\r\n\r\n  - fail\r\n  - failed\r\n  - error\r\n  - onerror\r\n\r\nAre all better replacements than report. I'd go with fail just because it's already a well known alias."}}