我的Node.js脚本崩溃,因为使用spawn时抛出的ENOMEM(内存不足)errnoException。 错误: child_process.js:935 throw errnoException(process._errno, 'spawn'); ^ Error: spawn ENOMEM at errnoException (child_process.js:988:11) at ChildProcess.spawn (child_process.js:935:11) at Object.exports.spawn (child_process.js:723:9) at module.exports ([…]/node_modules/zbarimg/index.js:19:23) 我已经使用侦听器的error和exit事件,但他们不会被解雇的情况下,这种错误。 我的代码: zbarimg = process.spawn('zbarimg', [photo, '-q']); zbarimg.on('error', function(err) { … }); zbarimg.on('close', function(code) { … }); 完整的源代码可用 。 有什么我可以做,以防止脚本崩溃? 如何捕捉抛出的ENOMEM错误? 谢谢!
当返回的数据不是有效的JSON时,jQuery的$.getJSON静静地失败似乎非常不方便。 为什么这是无声的失败实施? 什么是最简单的方式来执行更好的失败行为getJSON(例如抛出一个exception, console.log()或其他)?
我从我想要提前退出的一个方法抛出一个Error ,如下所示: // No route found if(null === nextRoute) { throw new Error('BAD_ROUTE'); } 我需要return;吗return; 我throw后的声明? 它现在适用于我。 如果它是多余的,我宁愿不把它,但我不能确定什么不同的浏览器可以做。
我明白,“例外情况是例外”,但除了一遍又一遍的重复,我从来没有find这个事实的真正原因。 因为他们停止执行,所以你不会希望他们使用简单的条件逻辑,但为什么不inputvalidation呢? 假设您要循环input一组input,并捕获每个exception,将它们组合在一起以供用户通知…我总是看到这是某种“错误的”,因为用户始终input错误的input,但是这一点似乎是基于关于语义 。 投入是不是预期的,因此是例外。 抛出exception允许我准确定义StringValueTooLong或IntegerValueTooLow或InvalidDateValue或其他什么错误。 为什么这被认为是错误的? 抛出exception的替代方法是返回(并最终收集)错误代码,或者更糟的是错误string。 然后,我会直接显示这些错误string,或parsing错误代码,然后显示相应的错误消息给用户。 不会将例外视为可延展的错误代码吗? 为什么要创build一个单独的错误代码和消息表,当这些错误代码和消息可以用我的语言已经内置的exceptionfunction进行概括时? 另外,我发现Martin Fowler的这篇文章是关于如何处理这种事情的 – 通知模式。 我不知道我是如何看到这是除了不停止执行的例外。 a:到处都是关于例外的东西。 —编辑— 许多伟大的观点已经提出。 我已经评论了大多数,而且还有很多好处,但我还没有完全确信。 我并不是要主张exception作为解决inputvalidation的正确方法,但是我想find很好的理由,为什么这种做法被认为是如此邪恶,因为似乎大多数替代解决scheme只是变相的例外。
我有一个控制器与多个行动,采取:年和:月作为来自URL的属性。 我已经做了一个私人的方法check_date来检查date是有效的,检查date是不是在未来。 def check_date(year, month) if month < 1 || month > 12 || year < 2000 flash[:notice] = I18n.t 'archive.invalid_date' redirect_to :action => 'index' elsif year > Date.today.year || (year == Date.today.year && month > Date.today.month) flash[:notice] = I18n.t 'archive.no_future' redirect_to :action => 'month_index', :year => Date.today.year, :month => Date.today.month, :type => params[:type] end […]
我想返回一个视图不会发出redirect到用户的基础上,可能会从我的应用程序发生的某些错误,我想处理错误+日志他们在我的基本控制器,我不想错误传播到我的Global.asax – Application_Error()方法,因为我想这个方法来处理我的应用程序内的任何其他错误,例如用户input一个虚假的URL,有没有人find解决办法? 注:我已经离开了我的评论代码,因为我有一些问题的解决方法,这也表明我有多个例外可能处理… 编辑:如果我在此OnException中发出RedirectToAction覆盖一切正常,但我只想返回视图,没有redirect… 我的基地控制器的方法是: protected override void OnException(ExceptionContext filterContext) { //dont interfere if the exception is already handled if (filterContext.ExceptionHandled) return; //let the next request know what went wrong filterContext.Controller.TempData["exception"] = filterContext.Exception; //log exception _logging.Error(User.Identity.Name, ExceptionHelper.BuildWebExceptionMessage(filterContext.Exception)); //set up redirect to my global error handler //if (filterContext.Exception.GetType() == typeof(NoAccessException)) // filterContext.Result = View(new RouteValueDictionary […]
当我尝试启动在Visual Studio中创build的服务时,我收到以下错误: System error 5 has occurred. Access is denied. 我用提升的权限运行命令行,所以没有这个问题。 有什么地方可以查看发生了什么错误。
我有这个代码。 User对象构造函数有可能以某种方式失败,这样$this->LoggedUser被分配了一个NULL值,并且在构造函数返回后该对象被释放了吗? $this->LoggedUser = NULL; if ($_SESSION['verbiste_user'] != false) $this->LoggedUser = new User($_SESSION['verbiste_user']);
我最近inheritance了几个作为Windows服务运行的应用程序,并且我提供了一个gui(可以从系统托盘中的上下文菜单中访问),它们都有问题。 为什么我们需要一个窗口服务的GUI是为了能够重新configuration窗口服务的行为,而不诉诸停止/重新启动。 我的代码在debugging模式下工作正常,我得到的上下文菜单出现,一切正常行为等 当我通过“installutil”使用指定帐户(即不是本地系统帐户)安装服务时,服务运行正常,但不显示系统托盘中的图标(我知道这是正常行为,因为我不有“与桌面交互”选项)。 这里是问题 – 当我select“LocalSystemAccount”选项,并检查“与桌面交互”选项,该服务需要AGES启动没有明显的原因,我只是不断 无法在本地计算机上启动…服务。 错误1053:服务没有及时响应启动或控制请求。 顺便说一句,我通过registry黑客(从http://support.microsoft.com/kb/824344 ,在第3节中searchTimeoutPeriod)将Windows服务超时从默认的30秒增加到2分钟,但服务仍然启动超时。 我的第一个问题是:为什么“本地系统帐户”login比服务使用非LocalSystemAccountlogin需要花费的SOOOOO多久,导致Windows服务超时? 这两者之间有什么区别可以引起这种不同的行为呢? 其次 – 退后一步,我试图实现的只是一个提供configurationGUI的Windows服务 – 我非常乐意使用非本地系统帐户(使用命名用户/ pwd)运行,如果我可以得到服务与桌面进行交互(也就是说,从系统托盘中有一个上下文菜单)。 这是可能的,如果是的话如何? 任何指针上述问题将不胜感激!
大多数有关error handling的build议归结为一些提示和技巧(例如,看这篇文章 )。 这些提示是有帮助的,但我认为他们不回答所有问题。 我觉得应该按照一定的哲学思想来devise我的应用,这个哲学思想为我们提供了一个坚实的基础。 error handling的主题有没有这样的理论? 以下是一些实际问题: 如何判断错误是应该在本地处理还是传播到更高级别的代码? 如何决定是logging一个错误,还是将错误信息显示给用户? logging应该只在应用程序代码中完成的东西吗? 或者可以从库代码做一些日志logging。 在例外的情况下,你应该在哪里抓住他们? 在低级或更高级别的代码? 如果您想通过所有的代码层来争取统一的error handling策略,或者尝试开发一个能够适应各种error handling策略的系统(以便能够处理来自第三方库的错误)。 创build错误代码列表是否有意义? 还是这些老式的? 在很多情况下,制定一个足够好的策略来处理错误条件是常识。 但是,我想知道是否有更正式的“学术”方法? PS:这是一个普遍的问题,但也欢迎C ++特定的答案(C ++是我工作的主要编程语言)。