diff --git a/lib/application.js b/lib/application.js
index <HASH>..<HASH> 100644
--- a/lib/application.js
+++ b/lib/application.js
@@ -103,8 +103,8 @@ app.run = function (port, callback) {
     if (enable(configs, 'log')){
         this.use(logMiddleware(configs.log));
     }
-    if (enable(configs, 'error')) {
-        this.use(errorHandler(configs.error));
+    if (enable(configs, 'errorHandling')) {
+        this.use(errorHandler(configs.errorHandling));
     }
     if (enable(configs, 'mvc')) {
         this.use(middlewares.mvc.middleware(configs.mvc));
diff --git a/lib/errorHandler.js b/lib/errorHandler.js
index <HASH>..<HASH> 100644
--- a/lib/errorHandler.js
+++ b/lib/errorHandler.js
@@ -1,5 +1,5 @@
 /**
- * lark.js - lib/middlewares.js
+ * lark.js - lib/errorHandler.js
  * Copyright(c) 2014 larkjs-team
  * MIT Licensed
  */
@@ -16,7 +16,13 @@ function * errorHandler (next) {
     }
     catch (e) {
         handle(e, this);
-        throw e;
+        var statusCode = e.status || e.statusCode;
+        if (!statusCode.match(/^5\d\d$/)) {
+            this.status = statusCode; 
+        }
+        else {
+            throw e;
+        }
     }
 };
fix bug that every request responses an error