Tag: try catch

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这种情况下?

我可以在Node.js的JavaScript中使用catch(如果是instanceof SyntaxError)吗?

我读了有关在MDN尝试捕获(如果E实例…)块,但是,在Node.js中尝试它时,我得到一个SyntaxError:意外的标记,如果。 如果这不起作用,是否有另一种方法来捕捉特定的exception,而不是可能发生的一切?

试图parsingJSON,而不会崩溃Node.js服务器

我正在使用支持Node.js开发一个项目,我也使用JSON通过Web套接字传递数据到客户端和从客户端。 我的问题是,如果一个无效的string被发送到服务器(很容易由用户搞乱JavaScript控制台),那么它会崩溃服务器,同时试图parsing它。 我用来防止这种情况的当前方法是使用try / catch语句。 我的问题是,是否有一个更正确的方法来检查一个string是否可以parsing? 另外,是使用try / catch语句的良好实践还是仅仅意味着debugging? 谢谢。

在抛出的对象中传递错误原因/如何处理现代JavaScript中的错误

我正在开发一个包含parsing器的小型Node.js包。 它一旦发现不可恢复的问题就会抛出。 我已经使用了Java多年,我已经习惯了大量的exception类。 但是这是JavaScript。 我想这是一个风格问题。 我的根本问题是如何通过错误原因赶上块。 我考虑为不同的错误原因创build不同的错误“类”,每个错误都关注每个问题的细节,或者将一个错误类作为属性来保存原因。 让我给你一个处理这两种错误的例子: catch(e) { if(e instanceof FirstError) { … } if(e instanceof SecondError) { … } } catch(err) { if(err instanceof AnError) { if(err.detail === 'becauseOfA') { … } if(err.detail === 'becauseOfB') { … } } … } 哪种方法比较好? 两者都可以工作,但我不喜欢第一个。 在我看来,许多课程都像一个巨大的开销。 编辑: 我同意使用callback(也在这里回答): // One class per error type […]

是否try-catch-finally块在node.js中同步?

我有一些代码运行在一个节点程序中的subprocess ,如下所示: try{ var data = fs.readFileSync(urlPath, {"encoding":"utf8"}); } catch (err) { console.log("Error reading url file…"); throw err; } finally { console.log("File read!"); var array = data.split("\n"); console.log("Found " + array.length + " urls"); 这个代码是从另一个节点程序调用的,需要等到这个文件中的所有操作完成 。 不幸的是,在执行finally代码块之前的任何代码之前,subprocess正在以代码0退出。 这让我相信即使try-catch-finally也是asynchronous的。 那是对的吗?