diff --git a/lib/assert.js b/lib/assert.js
index <HASH>..<HASH> 100644
--- a/lib/assert.js
+++ b/lib/assert.js
@@ -70,19 +70,10 @@ x.notSame = function (val, expected, msg) {
 
 x.throws = function (fn, err, msg) {
 	if (fn && fn.then) {
-		var isFailed = false;
-
 		return fn
-			.catch(function (err) {
-				isFailed = true;
-
-				return err;
-			})
-			.then(function (fnErr) {
-				if (!isFailed) {
-					x.throws(function () {}, err, msg);
-				}
-
+			.then(function () {
+				x.throws(function () {}, err, msg);
+			}, function (fnErr) {
 				x.throws(function () {
 					throw fnErr;
 				}, err, msg);
Close #<I> PR: Refactor promises in throws method.