相关疑难解决方法(0)

测试是否存在嵌套的JavaScript对象键

如果我有一个对象的引用:

var test = {};
Run Code Online (Sandbox Code Playgroud)

可能(但不是立即)有嵌套对象,如:

{level1: {level2: {level3: "level3"}}};
Run Code Online (Sandbox Code Playgroud)

在最深层嵌套的对象中测试密钥是否存在的最佳方法是什么?

alert(test.level1);收益率undefined,但alert(test.level1.level2.level3);失败了.

我现在正在做这样的事情:

if(test.level1 && test.level1.level2 && test.level1.level2.level3) {
    alert(test.level1.level2.level3);
}
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更好的方法.

javascript nested properties object

616
推荐指数
19
解决办法
21万
查看次数

检查C中是否存在文件的最佳方法是什么?

有没有比简单地尝试打开文件更好的方法?

int exists(const char *fname)
{
    FILE *file;
    if ((file = fopen(fname, "r")))
    {
        fclose(file);
        return 1;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c filesystems cross-platform

401
推荐指数
8
解决办法
50万
查看次数

java try块应该尽可能紧密地限定范围吗?

我被告知使用Java try-catch机制会有一些开销.因此,虽然有必要在try块中放置抛出checked异常的方法来处理可能的异常,但是在性能方面优化的做法是限制try块的大小以仅包含那些可能抛出异常的操作.

我不太确定这是一个明智的结论.

考虑以下两个实现处理指定文本文件的实现.

即使第一个产生一些不必要的开销是正确的,我发现它更容易遵循.通过查看语句来确定异常的确切位置尚不清楚,但评论清楚地表明哪些陈述是负责任的.

第二个比第一个更长更复杂.特别是,第一个很好的读行成语必须被修改以使readLine调用适合try块.

在函数中处理异常的最佳实践是什么?在定义中可能抛出多个异常?

这个包含try块中的所有处理代码:

void processFile(File f)
{
  try
  {
    // construction of FileReader can throw FileNotFoundException
    BufferedReader in = new BufferedReader(new FileReader(f));

    // call of readLine can throw IOException
    String line;
    while ((line = in.readLine()) != null)
    {
      process(line);
    }
  }
  catch (FileNotFoundException ex)
  {
    handle(ex);
  }
  catch (IOException ex)
  {
    handle(ex);
  }
}
Run Code Online (Sandbox Code Playgroud)

这个只包含在try块中抛出异常的方法:

void processFile(File f)
{
  FileReader reader;
  try
  {
    reader = new FileReader(f);
  }
  catch (FileNotFoundException ex)
  {
    handle(ex); …
Run Code Online (Sandbox Code Playgroud)

java readability exception-handling

40
推荐指数
2
解决办法
7011
查看次数

Python中的廉价异常处理?

我在前面的回答中读到异常处理在Python中很便宜所以我们不应该进行预条件检查.

我以前没有听说过这个,但我对Python比较陌生.异常处理意味着动态调用和静态返回,而if语句是静态调用,静态返回.

如何做好检查是坏的,try-except好的,似乎是另一种方式.谁可以给我解释一下这个?

python performance exception-handling

29
推荐指数
5
解决办法
7521
查看次数

C++ 我应该在删除文件之前检查文件是否存在吗?

很简单,我想删除一个可能存在也可能不存在的文件。仅使用remove(filename)并忽略返回值是不好的做法吗?

编辑:通过删除,我指的是这个

c c++ file delete-file

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

检查嵌套列表是否具有特定索引的值的优雅方法是什么?

假设我们有2d数组:

ar = [[1,2],
      [3,4]]

if ar[1][1]:
#works
if not ar[3][4]: 
#breaks!! 
Run Code Online (Sandbox Code Playgroud)

因为我是python的新手,需要知道什么是优雅的语法.

python exception-handling list nested-lists

2
推荐指数
1
解决办法
159
查看次数

从(可能是空的)文件中 Depickle

所以我试图创建一个文件并从中读取,即使它是空的。因此,下次运行该程序时,该文件将已经存在并且其中会有数据。

#this should create the file
filename = open("roombooking.bin","wb")
#this should load the data into a list but since its first created it should be an empty list
monday=pickle.load(open("roombooking.bin","rb"))
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误

Traceback (most recent call last):
    monday=pickle.load(open("roombooking.bin","rb"))
  File "C:\Python27\lib\pickle.py", line 1378, in load
    return Unpickler(file).load()
  File "C:\Python27\lib\pickle.py", line 858, in load
    dispatch[key](self)
  File "C:\Python27\lib\pickle.py", line 880, in load_eof
    raise EOFError
EOFError
Run Code Online (Sandbox Code Playgroud)

python pickle

0
推荐指数
1
解决办法
7839
查看次数

在插入之前检查行是否存在的线程安全方法 - 我的代码是否正确?

我有一个表"INSERTIF",看起来像这样 -

id  value
S1  s1rocks
S2  s2rocks
S3  s3rocks
Run Code Online (Sandbox Code Playgroud)

在将一行插入此表之前,我想检查给定的ID是否存在.如果它不存在,则插入.否则,只需更新值即可.我想以线程安全的方式做到这一点.你能告诉我我的代码是否正确吗?我尝试了它,它的工作原理.但是,我想确保我没有遗漏任何性能问题.

编辑1-我想使用此代码一次插入数百万行.每个insert语句都包含在我显示的代码中.

编辑2 -我不想使用我的代码的UPDATE部分,只插入就足够了.

我不想使用MERGE,因为它只适用于SQL Server 2008及更高版本

谢谢.

代码 -

-- no check insert 
INSERT INTO INSERTIF(ID,VALUE)
VALUES('S1', 's1doesNOTrock')

--insert with checking 

begin tran /* default read committed isolation level is fine */
if not exists 
(select * from INSERTIF with (updlock, rowlock, holdlock) 
where ID = 'S1')
BEGIN
INSERT INTO INSERTIF(ID,VALUE)
VALUES('S1', 's1doesNOTrock')
END
else
/* update */
UPDATE INSERTIF
SET VALUE = 's1doesNOTrock'
WHERE ID = …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005 sql-server-2008

-1
推荐指数
1
解决办法
2965
查看次数