相关疑难解决方法(0)

打破嵌套(for)循环的最佳方法是什么?

在Javascript中打破嵌套循环的最佳方法是什么?

//Write the links to the page.
for (var x = 0; x < Args.length; x++)
{
   for (var Heading in Navigation.Headings)
   {
      for (var Item in Navigation.Headings[Heading])
      {
         if (Args[x] == Navigation.Headings[Heading][Item].Name)
         {
            document.write("<a href=\"" 
               + Navigation.Headings[Heading][Item].URL + "\">" 
               + Navigation.Headings[Heading][Item].Name + "</a> : ");
            break; // <---HERE, I need to break out of two loops.
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

javascript loops break nested-loops

397
推荐指数
9
解决办法
22万
查看次数

如何停止Javascript forEach?

我正在玩nodejs和mongoose - 尝试在深层注释中找到特定注释,并使用递归函数和foreach进行嵌套.有没有办法阻止nodejs forEach?据我所知,每个forEach迭代都是一个函数而且我不能只做"休息",只能"返回",但这不会阻止foreach.

function recurs(comment){
    comment.comments.forEach(function(elem){
        recurs(elem);
        //if(...) break;
    });
}
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-5

332
推荐指数
8
解决办法
40万
查看次数

即使从不抛出异常,使用try-catch块是否昂贵?

我们知道捕获异常是昂贵的.但是,即使从未抛出异常,在Java中使用try-catch块也是昂贵的吗?

我发现Stack Overflow问题/答案为什么尝试块昂贵?,但它适用于.NET.

java performance try-catch

181
推荐指数
7
解决办法
4万
查看次数

抛出字符串而不是错误

既然我们可以throw在Javascript中使用关键字抛出任何内容,那么我们不能直接抛出错误消息字符串吗?

有谁知道这有什么捕获?

让我为此添加一些背景:很多时候,在JavaScript世界中,人们依赖于参数检查而不是使用try-catch机制,所以只抛出致命错误才有意义throw.仍然,为了能够捕获一些系统错误,我必须为我自己的错误使用不同的类,而不是创建Error的子类,我想我应该只使用String.

javascript

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

为什么Try/Catch在JavaScript中不经常使用?

看起来其他语言支持Try/Catch,开发人员比JavaScript更多地使用该功能.是否有一个原因?Try/Catch的JS实现有缺陷吗?

javascript

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

何时使用try/catch块?

我已完成阅读并了解Try/Catch块的功能以及使用它的重要性.但我不知道何时/何地使用它们.有什么建议?我将在下面发布我的代码示例,希望有人有时间为我的示例提出一些建议.

    public AMPFileEntity(string filename)
    {
        transferFileList tfl = new transferFileList();
        _AMPFlag = tfl.isAMPFile(filename);
        _requiresPGP = tfl.pgpRequired(filename);
        _filename = filename.ToUpper();
        _fullSourcePathAndFilename = ConfigurationSettings.AppSettings.Get("sourcePath") + _filename;
        _fullDestinationPathAndFilename = ConfigurationSettings.AppSettings.Get("FTPStagePath") + _filename;
        _hasBeenPGPdPathAndFilename = ConfigurationSettings.AppSettings.Get("originalsWhichHaveBeenPGPdPath");
    }


    public int processFile()
    {

        StringBuilder sb = new StringBuilder();
        sb.AppendLine(" ");
        sb.AppendLine("    --------------------------------");
        sb.AppendLine("     Filename: " + _filename);
        sb.AppendLine("     AMPFlag: " + _AMPFlag);
        sb.AppendLine("     Requires PGP: " + _requiresPGP);
        sb.AppendLine("    --------------------------------");
        sb.AppendLine(" ");

        string str = sb.ToString();
        UtilityLogger.LogToFile(str);
        if (_AMPFlag)
        {
            if (_requiresPGP == true) …
Run Code Online (Sandbox Code Playgroud)

.net c# exception-handling try-catch

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

返回错误和抛出错误的区别

我在一个项目中发现了以下代码,我不明白。:

get(key, store = null) {
    if (!key) {
      return new Error('There is no key to get!');
    }

    let dbstore = this.localforage;

    if (store !== null) {
      dbstore = store;
    }

    return dbstore
      .getItem(key)
      .then(function(value) {
        return value;
      })
      .catch(function(err) {
        return new Error('The key (' + key + ") isn't accessible: " + err);
      });
  }
Run Code Online (Sandbox Code Playgroud)

为什么return new Error('There is no key to get!');而不是throw new Error('There is no key to get!');

另外为什么不在catch块中抛出错误?

javascript error-handling return promise

16
推荐指数
1
解决办法
1万
查看次数

NodeJS:抛出错误仍然会带来性能损失吗?

根据nodejs框架的不同,通常有两种方法来管理错误。

  • 扔掉它们(即throw new Error('invalid id');
  • 返回它们(即return { 400: 'invalid id' };

由于旧的建议是抛出错误效率低下,我总是尝试返回错误,但我更喜欢抛出错误,因为它们更方便。唯一一篇提到性能影响的文章是 Node v0.1。

这仍然是真的吗?


更新1

Nvm,我意识到我可以自己测试一下。以下代码供参考:

import { performance } from "perf_hooks";

function ThrowException() {
    throw new Error("invalid exception");
}
const _ATTEMPT = 1000000;
function ThrowingExceptions() {
    const p1 = performance.now();
    for (let i = 0; i < _ATTEMPT; i++) {
        try {
            ThrowException();
        } catch (ex: any) {
            // log error
        }
    }
    const p2 = performance.now();
    console.log(`ThrowingExceptions: ${p2 - p1}`);
} …
Run Code Online (Sandbox Code Playgroud)

javascript exception try-catch throw node.js

6
推荐指数
0
解决办法
1670
查看次数

用 try catch 包装现有 javascript 对象的所有方法

是否有一种下降方式可以使用 try catch 将所有方法包装在现有的 javascript 对象(例如第三方库)中,以便我可以处理异常错误?当然,我将在新接口下公开这些方法。

这是我现在想到的:(将其视为伪代码)

var MyInterface = {};
for (var property in thirdPartyLib) {
  if ((typeof thirdPartyLib[property]) === 'function'){
    MyInterfac[property] = function(){
      try {
        thirdPartyLib[property](arguments)
      }
      catch(err){
         //do my custom processing
      }
    }
  }   
}

//developer use MyInterface object
Run Code Online (Sandbox Code Playgroud)

只是想知道,我的上述想法有更好的方法或任何缺陷吗?谢谢。

javascript error-handling

5
推荐指数
1
解决办法
2139
查看次数