Articles of try catch

被asynchronous函数引发的错误被捕获

我想使用asynchronous函数而不是返回一个承诺,但是要拒绝我需要抛出这样的错误: async function asyncOperation() { throw new Error("Terminate this application."); } (async () => { try { await asyncOperation(); } catch (e) { console.error(e); } console.log("Nope, I am still running!"); // This will be printed regardless })(); 这意味着要捕获拒绝,我必须把函数调用放在一个try语句中。 这样做,而不是终止应用程序,我赶上了错误,我可以继续下去。 这当然可以像你期望的那样工作,但是我想抛出一个错误来实际终止应用程序,而不pipe函数是否在try语句中被调用。 如何在不检查catch语句中的错误的情况下实现这一点?

我怎样才能访问其他尝试块try块中的variables?

http://blog.grossman.io/how-to-write-async-await-without-try-catch-blocks-in-javascript/在这个链接中,有一些代码可以在try catch中访问一个variables,但是当我尝试在我的服务器这是不行的,因为它超出了范围。 我怎样才能做到这一点? try { const foo = "bar" } catch (e) { console.log(e) } try { console.log(foo) -> is not defined } catch (e) { console.log(e) }

代码的作品,但最好的做法是有一个try / catch块内的承诺?

用Promise包装try/catch是不是很好? 我正在审查下面的代码,我似乎无法理解在Promise中使用try/catch块的必要性。 另外,为什么没有Promise拒绝的地方,正如你可以在catch块中看到Promise解决的那样。 请帮我理解这段代码,就最佳实践和效率而言,在Promise中有try/catch的意思。 我也非常感谢任何有关清理代码的build议。 getRoute(): any { return async (request: any, reply: any) => { const result = new Promise<string>( async (resolve, reject) => { try { let userIsValid = await this.validator.validate(request.payload, RegisterUserValidator); if (userIsValid.error) { resolve(responseHelper.getErrorResponse(ResponseErrorCode.joiValidatorError, userIsValid.error)); throw new ControlFlowNonError(); } let results = await this.authUser.registerUser(request.payload); resolve(responseHelper.getSuccessResponse(results, null)); } catch (error) { let […]

在nodejs中使用try catch是很好的

我只想知道在nodejs中使用try catch是否好。 例如,我正在使用节点js的encryption模块进行encryption和解密。 所以我正在处理任何错误,而encryption/解密在尝试赶上是一个很好的做法?????

JavaScript:Try / Catch vs错误函数作为parameter passing

我想知道哪种方法更适合nodeJS的 JavaScripterror handling和debugging? 有一个纯粹的try / catch块: try { dangerous.function(); } catch(error); { console.log(error); } 要么 只是使用一个函数作为参数,如果发生任何错误将会显示 dangerous.function(function(error) { console.log(error); }); 我提出这个问题,因为我读了try / throw有可能logging太多的堆栈跟踪数据写在这里: http : //nodejs.org/api/domain.html#domain_warning_don_t_ignore_errors

为什么catch块不会触发,应用程序在node.js中停止工作

我有以下代码: try { user.findOne({ Email: req.body.email }, function (e, d) { if (d) { res.json({ 'success': false, 'json': null, 'message': 'This email already exists!', 'status': 200 }); } else { var u = new user(); u.Email = req.body.email; u.Password = req.body.password; u.Name = req.body.name; user.save(function (e, d) { res.json(d); }); } }); } catch (ex) […]

无法理解为什么try和catch在mongoose中没有按预期工作

我是新来的mongoose 。我在我的项目中使用Sails js , Mongo DB和Mongoose 。 我的基本要求是从我的user 集合中查找所有用户的详细信息。 我的代码如下: try{ user.find().exec(function(err,userData){ if(err){ //Capture the error in JSON format }else{ // Return users in JSON format } }); } catch(err){ // Error Handling } 这里user是包含所有user详细信息的模型 。 我有帆解除了我的应用程序,然后我closures了我的MongoDB连接。 我在DHC上运行了API ,发现如下: 当我第一次在DHC上运行这个API的时候, API花费了30多秒的时间来向我显示一个MongoDB 连接不可用的错误 。 当我第二次运行这个API的时候, API没有给出响应就超时了。 我的问题在这里为什么try和catch块无法在mongoose有效地处理这样的错误 exception ,或者是我做错了什么? 编辑我的要求是,如果数据库连接不存在,mongoose应立即显示错误。

节点:从来没有使用try-catch?

我在Node.js中编写数据处理系统 数据部分是用户提供或来自外部来源,所以 他们可能会以各种方式变形; 他们可能是模棱两可的; 他们可以相互矛盾。 在这种情况下,我通常要提醒用户,然后: 如果系统在交互模式下使用(即数据inputREPL),处理应该停止,build议一些动作并等待用户的决定。 如果它运行在批处理模式(即数据来自文件,Web服务或类似的来源),我想继续处理丢弃这些信息。 当然警告用户的方法也取决于模式。 我认为例外是解决这类问题的正确scheme,因为: 格式不正确或相互矛盾的数据应该是一个例外 ; 这样,特殊行为的代码将与通常的stream程明显分离; 我将能够将例外提升到更高的层次,在这个层面上我可以决定究竟干什么。 于是我开始寻找指南,发现了两件相关的事情: 此评论由@Raynos Node.js最佳实践exception处理 ; http://codebetter.com/karlseguin/2010/01/25/don-t-use-try-catch/ 。 前者没有进一步解释。 后来我明白,但我认为这不是我的情况。 你如何解决这个问题? 我正在寻找一般的方法,不一定是平台或语言特定的…或JavaScript的尝试抓住有什么特别邪恶?

节点和sequelize – > .catch(…)不能按预期方式工作

这里有一个非常简单的例子。 在这种情况下,“标记”是模型上的只读属性,当您尝试写入时会引发错误。 这只是为了强制一个错误来显示.catch(…)如何不被调用。 下面是非常简单的示例代码(名称,说明,运行时间都是variables设置为静态值之前,我们得到这个代码): models.TANServer.create({ name : name, description : description, defaultUpTime : defaultUpTime, token : "apple" }) .then( function( server ){ if( !server ){ res.statusCode = 400; res.end( "unknown error creating new server entry" ); return; } res.statusCode = 200; res.end( JSON.stringify( server ) ); return; }).catch( function( reason ){ res.statusCode = 500; res.end( […]

Javascript在一个try块内设置constvariables

是否有可能在ES6中使用const在严格模式下在try{}设置variables? 'use strict'; const path = require('path'); try { const configPath = path.resolve(process.cwd(), config); } catch(error) { //….. } console.log(configPath); 由于configPath被定义为超出范围,因此无法使用lint。 这似乎工作的唯一方法是通过做: 'use strict'; const path = require('path'); let configPath; try { configPath = path.resolve(process.cwd(), config); } catch(error) { //….. } console.log(configPath); 基本上,有反正使用const而不是let这种情况下?