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一样?

Windows中的文件redirect和%errorlevel%

比方说,我们想用下面的命令在windows中创build一个空文件: type nul > C:\does\not\exist\file.txt 该目录不存在,所以我们得到的错误: The system cannot find the path specified 如果你打印出%errorlevel%的输出是: echo %errorlevel% 0 然而,这个命令并不成功! 我注意到,如果您使用redirect,Windows不会设置最后一个命令的%errorlevel% 。 有没有解决的办法?

批次:“rd”的退出代码也是错误的

我正在写一个批处理(.bat)脚本,我需要处理删除文件夹失败的情况。 我使用%errorlevel%捕获退出代码,但在rd命令的情况下,它似乎不工作: C:\Users\edo\Desktop>rd testdir Directory is not empty C:\Users\edo\Desktop>echo %errorlevel% 0 为什么? 你有什么build议? 谢谢!

“在这个时候是意外的。”

我在batch file上运行这个命令: for %I in (*.txt *.doc) do copy %I c:\test2 …它不断返回: 我这个时候是意外的。 这个错误的原因是什么?

错误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 […]