标签: error-handling

PHP注意:未定义的偏移量:读取数据时带有数组的1

我收到这个PHP错误:

PHP Notice:  Undefined offset: 1
Run Code Online (Sandbox Code Playgroud)

这是抛出它的PHP代码:

$file_handle = fopen($path."/Summary/data.txt","r"); //open text file
$data = array(); // create new array map

while (!feof($file_handle) ) {
    $line_of_text = fgets($file_handle); // read in each line
    $parts = array_map('trim', explode(':', $line_of_text, 2)); 
    // separates line_of_text by ':' trim strings for extra space
    $data[$parts[0]] = $parts[1]; 
    // map the resulting parts into array 
    //$results('NAME_BEFORE_:') = VALUE_AFTER_:
}
Run Code Online (Sandbox Code Playgroud)

这个错误是什么意思?是什么导致这个错误?

php error-handling syntax-error undefined fatal-error

62
推荐指数
2
解决办法
30万
查看次数

错误1053:服务未及时响应启动或控制请求

我最近继承了一些作为Windows服务运行的应用程序,并且我在提供gui(可以从系统托盘中的上下文菜单访问)时遇到问题.

我们需要为Windows服务使用gui的原因是为了能够重新配置Windows服务的行为而无需停止/重新启动.

我的代码在调试模式下工作正常,我得到了上下文菜单,一切都行为正常等.

当我使用命名帐户(即非本地系统帐户)通过"installutil"安装服务时,服务运行正常,但不会在系统托盘中显示图标(我知道这是正常行为,因为我没有有"与桌面交互"选项).

这是问题所在 - 当我选择"LocalSystemAccount"选项,并检查"与桌面交互"选项时,该服务需要AGES启动,没有明显的原因,我只是不断得到

无法在本地计算机上启动...服务.

错误1053:服务未及时响应启动或控制请求.

顺便提一下,我通过注册表黑客将Windows服务超时从默认的30秒增加到2分钟(请参阅http://support.microsoft.com/kb/824344,在第3节中搜索TimeoutPeriod),但服务启动仍然超时

我的第一个问题是 - 为什么"本地系统帐户"登录比服务使用非LocalSystemAccount登录时要长得多,导致Windows服务超时?这两者之间的区别在于启动时会产生这种不同的行为吗?

其次 - 退一步,我想要实现的只是一个提供配置gui的Windows服务 - 我很乐意使用非本地系统帐户(带有命名用户/ pwd)运行,如果我可以让服务与桌面交互(也就是说,从系统托盘中提供上下文菜单).这是可能的,如果是这样的话怎么样?

任何指向上述问题的提示都将不胜感激!

windows error-handling windows-services timeout

60
推荐指数
7
解决办法
30万
查看次数

"On Error Resume Next"语句有什么作用?

我来了一些VBScript示例,我On Error Resume Next在脚本的开头基本上看到了该语句.

它有什么作用?

error-handling vbscript

60
推荐指数
5
解决办法
19万
查看次数

LBYL与Java中的EAFP?

我最近在教自己Python并在代码执行之前发现了关于错误检查的LBYL/EAFP习语.在Python中,似乎接受的样式是EAFP,它似乎与该语言一起使用.

LBYL(大号 OOK 安伏ý OU 大号 EAP):

def safe_divide_1(x, y):
    if y == 0:
        print "Divide-by-0 attempt detected"
        return None
    else:
        return x/y
Run Code Online (Sandbox Code Playgroud)

EAFP(它的ê asier到一个 SK ˚F orgiveness比P ermission):

def safe_divide_2(x, y):
    try:
        return x/y
    except ZeroDivisionError:  
        print "Divide-by-0 attempt detected"
        return None
Run Code Online (Sandbox Code Playgroud)

我的问题是:我从来没有听说过使用EAFP作为主要数据验证结构,来自Java和C++背景.EAFP在Java中使用是否明智?或者是否存在过多的异常开销?我知道实际抛出异常时只有开销,所以我不确定为什么不使用更简单的EAFP方法.这只是偏好吗?

python java error-handling idioms

59
推荐指数
5
解决办法
2万
查看次数

如何从PDO中挤出错误信息?

我似乎无法从PDO收到任何错误消息:

#$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
try {
  $sth = $dbh->prepare('@$%T$!!!');
  print_r($sth);
  print_r($dbh->errorInfo());
} catch (PDOException $e) {
    echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

它只给出:

PDOStatement Object
(
    [queryString] => @$%T$!!!
)
Array
(
    [0] => 00000
    [1] =>
    [2] =>
)
Run Code Online (Sandbox Code Playgroud)

setAttribute没有任何帮助.

这是PHP 5.3.3
支持MySQL的Apache 2.0 Handler PDO驱动程序
客户端API版本mysqlnd 5.0.7-dev - 091210 - $ Revision:300533 $

我该怎么做才能获得错误信息?

php error-handling pdo

59
推荐指数
3
解决办法
3万
查看次数

处理node.js中require()模块抛出的错误

在尝试require()不存在的模块时,我的代码中有一点障碍.代码循环遍历目录并var appname = require('path')在每个文件夹上执行操作.这适用于适当配置的模块,但抛出:Error: Cannot find module当循环命中非模块时.

我希望能够优雅地处理这个错误,而不是让它停止我的整个过程.简而言之,如何捕获错误require()

谢谢!

javascript error-handling node.js

59
推荐指数
3
解决办法
4万
查看次数

如果您在"我们不使用例外"阵营,那么您如何使用标准库?

注意:我不是在扮演魔鬼的拥护者或类似的东西 - 我只是真的好奇,因为我自己不在这个营地.

标准库中的大多数类型都具有可以抛出异常的变异函数(例如,如果内存分配失败)或者可以抛出异常的非变异函数(例如,超出边界的索引访问器).除此之外,许多自由函数可以抛出异常(例如operator newdynamic_cast<T&>).

你如何在"我们不使用例外"的背景下实际处理这个问题?

  • 你是否试图永远不会调用可以投掷的功能?(我无法看到它的规模如何,所以如果是这种情况,我很想知道你是如何实现这一目标的)

  • 你没事吧和标准库中投掷,你把"我们不使用异常"为"我们从来不的异常我们的代码,我们从来没有赶上从异常等的代码"?

  • 您是否通过编译器开关完全禁用异常处理?如果是这样,标准库的异常抛出部分如何工作?

  • 编辑您的构造函数,它们是否会失败,或者按照惯例使用具有专用init函数的两步构造,该函数可以在失败时返回错误代码(构造函数不能),或者您是否执行其他操作?

编辑在问题开始后1周进行了一些小的澄清......下面的评论和问题中的大部分内容都集中在为什么方面的例外与"别的东西".我的兴趣是不是在这,但是你选择做"别的东西",如何你处理标准库部件是抛出异常?

c++ error-handling exception-handling

59
推荐指数
5
解决办法
6428
查看次数

在Python中尝试直到没有错误

我在Python中有一段代码似乎在概率上导致错误,因为它正在访问服务器,有时该服务器有500内部服务器错误.我想继续尝试,直到我没有得到错误.我的解决方案是:

while True:
    try:
        #code with possible error
    except:
         continue
    else:
         #the rest of the code
         break
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎是个黑客.是否有更多的Pythonic方法来做到这一点?

python error-handling

58
推荐指数
5
解决办法
7万
查看次数

使用tryCatch跳转到错误时循环的下一个值?

我已经阅读了一些关于tryCatch和cuzzins的其他SO问题,以及文档:

但我还是不明白.

我正在运行一个循环,next如果发生任何一种错误,我想跳过:

for (i in 1:39487) {

  # EXCEPTION HANDLING
  this.could.go.wrong <- tryCatch(
                           attemptsomething(),
                           error=function(e) next
                         )
  so.could.this <- tryCatch(
                     doesthisfail(),
                     error=function(e) next
                   )

  catch.all.errors <- function() { this.could.go.wrong; so.could.this; }
  catch.all.errors;


  #REAL WORK
  useful(i); fun(i); good(i);

  }  #end for
Run Code Online (Sandbox Code Playgroud)

(顺便说一句,没有next我能找到的文件)

当我跑步时,R鸣喇叭:

Error in value[[3L]](cond) : no loop for break/next, jumping to top level
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么基本点?这tryCatch显然是在for循环中,所以为什么不R知道呢?

error-handling exception-handling r try-catch

57
推荐指数
5
解决办法
8万
查看次数

将ErrorType转换为NSError会丢失关联的对象

在Swift 2.0中NSError符合ErrorType协议.

对于自定义错误,我们可以为某些情况指定关联对象,如下所示.

enum LifeError: ErrorType {
    case BeBorn
    case LostJob(job: String)
    case GetCaughtByWife(wife: String)
    ...
}
Run Code Online (Sandbox Code Playgroud)

我们可以轻松地做到以下几点:

do {
    try haveAffairWith(otherPerson)
} catch LifeError.GetCaughtByWife(let wife) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我们希望它作为一个传递到其他地方NSError,它就会丢失它的关联对象信息.

println("\(LifeError.GetCaughtByWife("Name") as NSError)")
Run Code Online (Sandbox Code Playgroud)

打印:

Error Domain=... Code=1 "The operation couldn't be completed". (... error 1)
Run Code Online (Sandbox Code Playgroud)

userInfonil.

wife和哪里有联系ErrorType

error-handling swift swift2

57
推荐指数
4
解决办法
2万
查看次数