javascript

java

python

c#

android

node.js

reactjs

c++

php

html

jquery

css

git

.net

ios

ruby-on-rails

sql

c

string

ruby

使用try .. catch ..最终处理Javascript错误

我怀疑我没有正确使用catch块,而且我不了解其用途的基本原理...

 function myFunc() {
      try {
           if (true) {
                throw "An error";
           }
      } catch (e) {
           alert (e);
           return false;
      } finally {
           return true;
      }
 }

该函数将运行catch块,警告“错误”,然后返回true。 为什么不返回false?

trans by 2019-11-17T02:35:00Z

asp.net-我应该忽略偶尔的无效viewstate错误吗?

时不时地(大约每天一次),我们在ASP.NET 3.5应用程序的日志中看到以下类型的错误

  • 无效的观看状态
  • 无效的回发或回调参数

这些是ASP.NET应用程序时不时地“发生”的吗? 有人会建议我们花很多时间尝试诊断导致问题的原因吗?

trans by 2019-11-17T00:29:05Z

忽略JSON.NET数据解析期间的解析错误

我有一个具有预定义数据结构的对象:

public class A
{
    public string Id {get;set;}
    public bool? Enabled {get;set;}
    public int? Age {get;set;}
}

和JSON应该是

{ "Id": "123", "Enabled": true, "Age": 23 }

我想以肯定的方式处理JSON错误,并且每当服务器为定义的数据类型返回意外值时,我都希望它被忽略并设置默认值(空)。

现在,当JSON部分无效时,我得到了JSON阅读器异常:

{ "Id": "123", "Enabled": "NotABoolValue", "Age": 23 }

而且我什么都没有。我想要的是获取一个对象:

new A() { Id = "123", Enabled = null, Age = 23 }

并分析警告(如果可能)。可以使用JSON.NET完成吗?

trans by 2019-11-12T19:07:13Z

错误处理-如何在不使用日志的情况下在Go中打印到Stderr

如何不使用os.Stderr.WriteString("Message")向Stderr写消息?

在此SO帖子中的评论显示了如何使用os.Stderr.WriteString("Message")576:log.Println("Message"),但是如果我不想要时间戳怎么办?

以下是好的Go吗?

os.Stderr.WriteString("Message")

trans by 2019-11-08T16:46:38Z

r-使用tryCatch在出错时跳到下一个循环值吗?

我还阅读了有关tryCatch和cuzzins的其他一些SO问题,以及相关文档:

  • R中的异常处理
  • 捕获错误然后分支逻辑
  • 如何检查函数调用是否导致警告?
  • 循环图中的问题

但是我还是不明白

我正在运行一个循环,如果出现以下几种错误中的任何一种,我想跳到tryCatch

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

(顺便说一下,我找不到关于tryCatch的文档)

当我运行此代码时,tryCatch鸣叫:

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

我在这里缺少什么基本要点? tryCatch显然位于for循环中,那么R为什么不知道呢?

trans by 2019-11-05T06:48:46Z

在Python中尝试直到n

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

while True:
    try:
        #code with possible error
    except:
         continue
    else:
         #the rest of the code
         break

对我来说,这似乎是一种hack。 有没有更Python化的方式来做到这一点?

trans by 2019-11-04T14:37:18Z

LBYL vs EAFP在Java中?

我最近在自学Python,并发现了LBYL / EAFP习惯用法,涉及代码执行前的错误检查。 在Python中,似乎可接受的样式是EAFP,并且似乎与该语言配合良好。

LBYL(跳跃前请先看):

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

EAFP(要求宽恕比允许许可容易):

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

我的问题是:我什至从未听说过使用EAFP作为主要的数据验证结构,它来自Java和C ++背景。 EAFP是在Java中明智使用的东西吗? 还是异常产生了太多开销? 我知道只有在实际引发异常时才有开销,因此我不确定为什么不使用更简单的EAFP方法。 只是偏爱吗?

trans by 2019-10-24T13:23:03Z

php-如何从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();
}

它只给出:

PDOStatement Object
(
    [queryString] => @$%T$!!!
)
Array
(
    [0] => 00000
    [1] =>
    [2] =>
)

setAttribute没有任何帮助。

这是PHP 5.3.3 Apache 2.0处理程序
启用了MySQL的PDO驱动程序
客户端API版本mysqlnd 5.0.7-dev-091210-$修订:300533 $

我该如何获取错误信息?

trans by 2019-10-24T05:59:15Z

错误处理-PHP注意:未定义偏移量:读取d时带数组

我收到此PHP错误:

PHP Notice:  Undefined offset: 1

这是抛出它的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_:
}

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

trans by 2019-10-15T00:10:01Z

vbscript-“出现错误时继续执行”语句有什么作用?

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

它有什么作用?

trans by 2019-10-13T22:31:09Z

javascript-错误:getaddrinfo EAI_AGAIN

我的服务器今天抛出了这个,这是我从未见过的nodejs错误。

Error: getaddrinfo EAI_AGAIN my-store.myshopify.com:443
    at Object.exports._errnoException (util.js:870:11)
    at errnoException (dns.js:32:15)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:78:26)

我想知道这是否与DynDns DDOS攻击有关,该攻击今天影响了Shopify和许多其他服务。 这是有关此的文章。

我的主要问题是dns.js会做什么? 节点的哪一部分分开? 我可以在其他域中重新创建此错误吗?

trans by 2019-10-13T14:40:30Z

c ++-如果您处于“我们不使用例外”阵营中,那么如何使用标准库?

注意:我不是在这里扮演恶魔的拥护者-我真的很好奇,因为我自己不在这个阵营中。

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

在“我们不使用例外”的情况下,您如何实际处理呢?

  • 您是否试图永远不要调用可能抛出的函数? (我看不到如何缩放,因此,在这种情况下,我很想听听您如何做到这一点)

  • 您是否对标准库的抛出感到满意,并且将“我们不使用异常”视为“我们从不从我们的代码中抛出异常并且我们从不从其他人的代码中捕获异常”?

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

  • 编辑您的构造函数,它们是否会失败,或者您是否按照惯例使用带有专用init函数的两步构造,该函数可以在失败时返回错误代码(构造函数无法返回错误代码),或者您是否做其他事情?

编辑问题开始1周后进行的次要澄清...以下注释和问题中的许多内容都集中在为什么异常与“其他”方面。 我的兴趣并不在于此,而是当您选择执行“其他操作”时,如何处理引发异常的标准库部分?

trans by 2019-10-09T22:52:56Z

Java-处理ANTLR4中的错误

解析器不知道要做什么时的默认行为是将消息打印到终端,例如:

第1:23行在“}”处缺少DECIMAL

这是一个很好的信息,但位置错误。 我宁愿将此作为例外。

我尝试使用BailErrorStrategy,但这会引发dataspec()而没有消息(由InputMismatchException引起,也没有消息)。

有什么办法可以让我通过异常报告错误,同时又保留消息中的有用信息?


这就是我真正想要的—我通常在规则中使用动作来构建对象:

dataspec returns [DataExtractor extractor]
    @init {
        DataExtractorBuilder builder = new DataExtractorBuilder(layout);
    }
    @after {
        $extractor = builder.create();
    }
    : first=expr { builder.addAll($first.values); } (COMMA next=expr { builder.addAll($next.values); })* EOF
    ;

expr returns [List<ValueExtractor> values]
    : a=atom { $values = Arrays.asList($a.val); }
    | fields=fieldrange { $values = values($fields.fields); }
    | '%' { $values = null; }
    | ASTERISK { $values = values(layout); }
    ;

然后,当我调用解析器时,我将执行以下操作:

public static DataExtractor create(String dataspec) {
    CharStream stream = new ANTLRInputStream(dataspec);
    DataSpecificationLexer lexer = new DataSpecificationLexer(stream);
    CommonTokenStream tokens = new CommonTokenStream(lexer);
    DataSpecificationParser parser = new DataSpecificationParser(tokens);

    return parser.dataspec().extractor;
}

我真正想要的是

  • 当无法解析输入时dataspec()调用以引发异常(理想情况下为已检查的异常)
  • 使该异常具有有用的消息并提供对发现问题所在的行号和位置的访问

然后,我将让该异常在调用堆栈中冒泡到最适合向用户显示有用消息的位置,就像我处理断开的网络连接,读取损坏的文件等的方法一样。

我确实看到ANTLR4中的动作现在被认为是“高级”的,所以也许我正在以一种奇怪的方式来处理事情,但是自从这种方式以来,我没有研究过“非高级”方式是什么。 一直很好地满足我们的需求。

trans by 2019-10-09T14:12:32Z

我可以在远程shell中使用Fabric进行run()调用时捕获错误代码吗?

通常,只要run()调用返回非零退出代码,Fabric就会退出。 但是,对于某些电话,这是预期的。 例如,当PNGOut无法压缩文件时,它将返回错误代码2。

目前,我只能使用shell逻辑(do_something_that_fails || true或2553693499770270274817)来规避此限制,但是我宁愿将逻辑保留在纯Python中(Fabric承诺)。

有没有一种方法可以检查错误代码并对错误代码做出反应,而不是让Fabric死机而死? 我仍然需要其他呼叫的默认行为,因此通过修改环境来更改其行为似乎不是一个好选择(据我所知,您只能使用它来警告它,而不要死掉)。

trans by 2019-10-04T00:41:57Z

NumPy:返回0除以z

我正在尝试在python中执行元素明智的除法,但是如果遇到零,则需要将商设为零。

例如:

array1 = np.array([0, 1, 2])
array2 = np.array([0, 1, 1])

array1 / array2 # should be np.array([0, 1, 2])

我总是可以在数据中使用for循环,但是要真正利用numpy的优化,我需要除法函数在除以零错误后返回0,而不是忽略错误。

除非我缺少任何东西,否则numpy.seterr()不会在出现错误时返回值。 在设置自己的除以零的错误处理方法时,还有人对我如何从numpy中获得最大收益有其他建议吗?

trans by 2019-10-01T18:31:10Z

JavaScript-Node.js捕获生成后引发的ENOMEM错误

使用spawn时,由于抛出了ENOMEM(内存不足)errnoException,我的Node.js脚本崩溃了。

错误:

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)

我已经在使用errorexit事件的侦听器,但是在发生此错误的情况下不会触发它们。

我的代码:

zbarimg = process.spawn('zbarimg', [photo, '-q']);
zbarimg.on('error', function(err) { ... });
zbarimg.on('close', function(code) { ... }); 

完整的源代码可用。

我有什么办法可以防止脚本崩溃? 如何捕获抛出的ENOMEM错误?

谢谢!

trans by 2019-10-01T13:30:39Z

go-如何获得Golang程序以打印刚刚调用的错误的行号?

我试图使用debug.PrintStack()在Golang程序中引发错误,但是log.FatalStackTrace()也不打印log.Fatal运行所在的行。 无法访问名为log.Fatal的行号吗? 即抛出错误时是否可以获取行号?

我试图用谷歌搜索,但不确定如何。 我能得到的最好的结果是打印堆栈跟踪,我认为这很好,但可能有点过多。 我也不想每次需要行号时都写debug.PrintStack(),我很惊讶没有像log.FatalStackTrace()这样的内置函数或任何不是服装的东西。

另外,我不想制作自己的调试/错误处理工具的原因是,我不想让人们不得不学习如何使用我的特殊服装处理代码。 我只想要一些标准,人们以后可以阅读我的代码,就像

“嗯,所以它抛出一个错误并执行X ...”

了解我的代码的人越少越好:)

trans by 2019-09-26T20:00:50Z

如何实现C ++异常处理运行时?

我对C ++异常处理机制的工作方式很感兴趣。 具体来说,异常对象存储在哪里,如何在多个作用域内传播,直到被捕获? 它存储在某个全局区域中吗?

由于这可能是特定于编译器的,因此有人可以在g ++编译器套件的上下文中对此进行解释吗?

trans by 2019-09-22T13:16:49Z

ASP.NET MVC-如何在RedirectToAction中保留ModelState错误?

我有以下两种操作方法(简化了问题):

[HttpGet]
public ActionResult Create(string uniqueUri)
{
   // get some stuff based on uniqueuri, set in ViewData.  
   return View();
}

[HttpPost]
public ActionResult Create(Review review)
{
   // validate review
   if (validatedOk)
   {
      return RedirectToAction("Details", new { postId = review.PostId});
   }  
   else
   {
      ModelState.AddModelError("ReviewErrors", "some error occured");
      return RedirectToAction("Create", new { uniqueUri = Request.RequestContext.RouteData.Values["uniqueUri"]});
   }   
}

因此,如果验证通过,我将重定向到另一个页面(确认)。

如果发生错误,我需要显示与错误相同的页面。

如果我执行return View(),则显示错误,但是如果我执行return RedirectToAction(如上),则会丢失模型错误。

我对这个问题并不感到惊讶,只是想知道你们如何处理?

我当然可以只返回相同的View而不是重定向,但是我在填充视图数据的“ Create”方法中有逻辑,我必须重复该逻辑。

有什么建议?

trans by 2019-09-21T01:20:55Z

如何解决错误LNK2019:无法解析的外部符号-函数?

我收到此错误,但我不知道如何解决。

我使用的是Visual Studio2013。我将解决方案名称命名为MyProjectTest这是我的测试解决方案的结构:

The structure

-function.h

#ifndef MY_FUNCTION_H
#define MY_FUNCTION_H

int multiple(int x, int y);
#endif

-function.cpp

#include "function.h"

int multiple(int x, int y){
    return x*y;
}

-main.cpp

#include <iostream>
#include <cstdlib>
#include "function.h"
using namespace std;

int main(){
    int a, b;
    cin >> a >> b;
    cout << multiple(a, b) << endl;

    system("pause");
    return 0;
}

我是初学者; 这是一个简单的程序,它运行没有错误。我在互联网上阅读并对单元测试感兴趣,因此我创建了一个测试项目:

文件>新建>项目...>已安装>模板> Visual C ++>测试>本机单元测试项目>

名称:UnitTest1解决方案:添加到解决方案然后位置自动切换到当前打开的解决方案的路径这是解决方案的文件夹结构:

Folder structure

我只编辑了unittest1.cpp文件:

#include "stdafx.h"
#include "CppUnitTest.h"
#include "../MyProjectTest/function.h"

using namespace Microsoft::VisualStudio::CppUnitTestFramework;

namespace UnitTest1
{       
    TEST_CLASS(UnitTest1)
    {
    public:

        TEST_METHOD(TestEqual)
        {

            Assert::AreEqual(multiple(2, 3), 6);
            // TODO: Your test code here
        }

    };
}

但是我收到错误LNK2019:无法解析的外部符号。我知道缺少函数multi的实现。我试图删除function.cpp文件,并用定义替换了声明,然后它开始运行。 但是不建议将声明和定义都写在同一个文件中。如果不这样做,如何解决此错误? 我应该用unittest.cpp文件中的#include "../MyProjectTest/function.cpp"替换吗?(我不太会英语。谢谢)

trans by 2019-09-18T22:09:02Z

1 2 3 4 5 下一页 共5页