Articles of error handling

处理C只读文件closures错误

我正在做一些基本的文件读取使用打开,读取和closures(文件打开访问模式O_RDONLY)。 当closures文件的时候,我想不出一个好办法来处理可能的文件closures错误,以确保文件closures正确。 有什么build议么?

什么是一个好的Linux退出错误代码策略?

我有几个独立的可执行Perl,PHP CLI脚本和C ++程序,我需要开发一个退出错误代码策略。 这些程序由其他程序使用我创build的用于在PHP中使用exec()的封装类来调用。 所以,我将能够得到一个错误代码。 基于那个错误代码,调用脚本将需要做一些事情。 我已经做了一些研究,看起来1-254(或者只是1-127)范围内的任何事情对于用户定义的错误代码来说都是公平的游戏。 我只是想知道在这种情况下其他人是如何处理error handling的。

停止打印php错误信息到浏览器

我使用PHP 5.3,CentOS 6.2,httpd 2.2.15,NetBeans 7.0.1(通过ftp远程运行)。 我想停止向浏览器打印错误消息,这足以打印到httpd的error_log。 我认为做try / catch我会决定如何处理错误,但它仍然打印到error_log和浏览器。 function smic_gettext($phrase){ try{ $tr_text = $this->language_array[$phrase]; } catch(Exception $e){ error_log("Couldn't find any entry in the translation file for ".$phrase.". ".$e); return $phrase; } return $tr_text; } 我应该如何configuration才能阻止这种行为? 我曾尝试在php.ini中设置display_errors = Off和display_errors = 0。 没有区别(我没有重启httpd)。

在bash脚本中引发错误

我想在消息“testing用例失败!!!”的Bash脚本中引发错误。 如何在Bash中做到这一点? 例如: if [ condition ]; then raise error "Test cases failed !!!" fi

如果posixclosures呼叫失败怎么办?

在我的系统(Ubuntu Linux,glibc)上, close调用的手册页指定了它可以返回的几个错误返回值。 它也说 不检查close()的返回值是一个常见但严重的编程错误。 并在同一时间 请注意,返回值只能用于诊断。 特别是close()不应该在EINTR之后重试,因为这可能导致来自另一个线程的重用描述符被closures。 所以我不允许忽略返回值,也不能重试呼叫。 鉴于此,我应该如何处理close()呼叫失败? 如果在写文件的时候发生了错误,我可能应该尝试在其他地方写信息以避免数据丢失。 如果我只是在阅读文件,我可以只logging失败,并继续假装什么都没有发生? 是否有任何警告,文件描述符泄漏或其他?

errno,strerror和Linux系统调用

在使用CRT函数(如fopen)后,我可以使用strerror来获取errno值的文本表示。 如果我使用开放的 Linux系统调用而不是CRT函数,它也会在失败时设置errno值。 这是正确的应用strerror这个errno值? 如果没有,是否有一些Linux系统调用,这跟strerror一样?

错误1053服务没有响应启动或控制请求

我已经用C#编写了一个Windows服务,基本上每分钟都会检查我的数据库以获取订单,从这些订单生成一个PDF,并通过电子邮件发送。 这个逻辑在我的testing中是完美的。 当我创build服务,并使用安装项目进行安装时,当我开始服务mmc服务时,我得到: 错误1053服务没有及时响应启动或控制请求 我的OnStart方法如下所示: protected override void OnStart(string[] args) { //writeToWindowsEventLog("Service started", EventLogEntryType.Information); timer.Enabled = true; } 基本上,只是启用计时器…所以没有过程密集的电话那里。 我哪里错了? 我已经尝试设置启动帐户本地系统,networking服务等…没有任何工作! 编辑: 这里是我的代码:( processPurchaseOrders是数据库查询和pdf的生成等方法…) public partial class PurchaseOrderDispatcher : ServiceBase { //this is the main timer of the service private System.Timers.Timer timer; public PurchaseOrderDispatcher() { InitializeComponent(); } // The main entry point for the process […]

如果wpf应用程序没有响应,然后自动重启

我有一个偶尔崩溃的WPF应用程序,并说“没有回应”。 有没有办法来检测程序是否没有响应? 如果是的话,重新启动WPF应用程序? 这将是一个临时的修复,直到错误修复。

在Python中,如何检查驱动器是否存在,而不会抛出可移动驱动器的错误?

以下是我到目前为止: import os.path as op for d in map(chr, range(98, 123)): #drives bz if not op.isdir(d + ':/'): continue 问题是它在Windows中popup“No Disk”错误框: maya.exe – 没有磁盘:驱动器中没有磁盘。 请将磁盘插入驱动器\ Device \ Harddisk1 \ DR1 [取消,重试,继续] 我无法捕捉到exception,因为它实际上并没有抛出Python错误。 显然,这只发生在可移动的驱动器上有一个字母分配,但没有插入驱动器。 有没有办法解决这个问题,而没有具体告诉脚本哪个驱动器跳过? 在我的情况下,我在学校实验室的驱动器号改变取决于我在哪台实验室电脑。 另外,我没有安全权限来访问磁盘pipe理。

防病毒扫描工作目录是否可以合理解决?

我的Win32应用程序在运行时在指定的临时文件夹中执行大量的磁盘操作,严重的重新devise是不可能的。 一些客户端有防病毒软件扫描相同的临时目录(它只是扫描一切)。 我们试图说服他们禁用它 – 这是行不通的,所以也不可能。 每隔一段时间(对于每一千个文件操作都有一次),我的应用程序试图对由防毒软件打开的文件执行操作,因此被操作系统locking。 发生共享冲突并导致我的应用程序中出现错误。 平均每三分钟发生一次。 在大多数典型情况下,临时文件夹最多可以包含10万个文件,所以我不喜欢让它们随时打开的想法,因为这可能会导致在某些边缘条件下耗尽资源。 是否有一个合理的策略,我的应用程序对所需文件被locking的情况作出反应? 也许这样? for( int i = 0; i < ReasonableNumber; i++ ) { try { performOperation(); // do useful stuff here break; } catch( … ) { if( i == ReasonableNumber – 1 ) { throw; //not to hide errors if unlock never happens } } […]