小编par*_*ier的帖子

如果不立即重新引发异常回溯,则会隐藏异常回溯

我有一段类似于此的代码:

import sys

def func1():
    func2()

def func2():
    raise Exception('test error')

def main():
    err = None

    try:
        func1()
    except:
        err = sys.exc_info()[1]
        pass

    # some extra processing, involving checking err details (if err is not None)

    # need to re-raise err so caller can do its own handling
    if err:
        raise err

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

func2引发异常时,我收到以下回溯:

Traceback (most recent call last):
  File "err_test.py", line 25, in <module>
    main()
  File "err_test.py", line 22, in main
    raise err …
Run Code Online (Sandbox Code Playgroud)

python exception-handling exception try-catch traceback

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

38
推荐指数
2
解决办法
2990
查看次数

在Python中定义属性的首选方法:属性装饰器还是lambda?

哪个是在Python中定义类属性的首选方法?为什么?在一个班级中同时使用两个都可以吗?

@property
def total(self):
    return self.field_1 + self.field_2
Run Code Online (Sandbox Code Playgroud)

要么

total = property(lambda self: self.field_1 + self.field_2)
Run Code Online (Sandbox Code Playgroud)

python lambda properties decorator

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

AJAX响应:数据(JSON,XML)还是HTML片段?

我只是想知道AJAX响应的"理想"输出格式是什么?使用一些客户端JavaScript模板引擎将纯数据(JSON,XML)呈现到页面中?或者"按原样"呈现到页面中的HTML片段?

你的偏好是什么?为什么?

html xml ajax json client-server

12
推荐指数
2
解决办法
4146
查看次数

PEP8 - 80个字符 - 大整数

这在某种程度上与关于大字符串和PEP8的问题有关.

如何使我的脚本具有符合PEP8的以下行("最大行长度"规则)?

pub_key = {
   'e': 3226833362680126101036263622033066816222202666130162062116461326212012222403311326222666622610430466620224662364142L,
   'n': 226421003861041248462826226103022608220328242204422684232640331238220232226321616266146243302342688266846281802662666622213868114632268211186223606846623310006662260110460620201618186828411322260686632603226636226662262862212140221422102106336342228236361106240226122644614266186283436228208626640846820224661642086022346422443282224682686612228404266842316822624342226666622264826123822122031361242246432886612624262663222232331438863220022020826266366016100422L
}
Run Code Online (Sandbox Code Playgroud)

python coding-style pep8

12
推荐指数
3
解决办法
758
查看次数

在Java XOR中,三个真实输入返回true.为什么?

以下代码

System.out.println("1 0 0: " + (true ^ false ^ false));
System.out.println("1 0 1: " + (true ^ false ^ true));
System.out.println("1 1 0: " + (true ^ true ^ false));
System.out.println("1 1 1: " + (true ^ true ^ true));
System.out.println("0 0 0: " + (false ^ false ^ false));
System.out.println("0 0 1: " + (false ^ false ^ true));
System.out.println("0 1 0: " + (false ^ true ^ false));
System.out.println("0 1 1: " + (false ^ true ^ …
Run Code Online (Sandbox Code Playgroud)

java logic xor

12
推荐指数
4
解决办法
6947
查看次数

如何将任意字符串转换为Java标识符?

我需要转换任意字符串:

  • 带空格的字符串
  • 100stringsstartswithnumber
  • 字符串€有%的特别†字符/ \!
  • [空字符串]

到有效的Java标识符:

  • string_with_spaces
  • _100stringsstartswithnumber
  • string_with_special_characters___
  • _

是否有现有的工具可用于此任务?

有了这么多Java源代码重构/生成框架,人们会认为这应该是非常常见的任务.

java string code-generation identifier

11
推荐指数
1
解决办法
5660
查看次数

在jasmine上监视jQuery $('...')选择器

当谈到刺探jQuery的功能(例如bind,click等)很容易:

spyOn($.fn, "bind");
Run Code Online (Sandbox Code Playgroud)

问题是当您想要监视$('...')并返回已定义的元素数组时.

在SO上阅读其他相关答案后尝试了一些事情:

spyOn($.fn, "init").andReturn(elements); // works, but breaks stuff that uses jQuery selectors in afterEach(), etc
spyOn($.fn, "merge").andReturn(elements); // merge function doesn't seem to exist in jQuery 1.9.1
spyOn($.fn, "val").andReturn(elements); // function never gets called
Run Code Online (Sandbox Code Playgroud)

那我该怎么做?或者,如果唯一的方法是监视init函数,当我完成时如何从函数中"删除"间谍,这样afterEach()路由不会中断.

jQuery版本是1.9.1.

解决方法:

到目前为止我唯一可以使它工作的方式(丑陋):

realDollar = $;
try {
  $ = jasmine.createSpy("dollar").andReturn(elements);
  // test code and asserts go here
} finally {
  $ = realDollar;
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery unit-testing mocking jasmine

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

如何在Oracle中通过XPath获取第一个元素

在我的Oracle数据库中,我有这样的记录:

<ROOT>
  <Event>
    <Type>sldkfvjhkljh</Type>
    <ID>591252</ID>
  </Event>
  <Data>
    <File>
      <Name>1418688.pdf</Name>
      <URL>/591252/1418688.pdf</URL>
    </File>
    <File>
      <Name>1418688.xml</Name>
      <URL>/591252/1418688.xml</URL>
    </File>
  </Data>
</ROOT>
Run Code Online (Sandbox Code Playgroud)

我需要从第一个<Name>标签中提取一个值.如果我尝试:

Select xmltype(xml_data).extract('//Name[1]/text()').getStringVal() from MY_TABLE
Run Code Online (Sandbox Code Playgroud)

我明白了:

1418688.pdf1418688.xml

为什么这样,我怎么才能得到它1418688.pdf

Oracle版本:

Oracle数据库10g企业版10.2.0.4.0版 - 64bi

xml sql oracle xpath xmltype

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

使用String.format()作为注释属性值

我有一个有许多常量的类:

public class SecurityConstants {
    private static final String HAS_ROLE_TEMPLATE = "hasRole('%s')";

    public static final String ROLE_USER_INTERNAL = "ROLE_USER_INTERNAL";
    public static final String HAS_ROLE_USER_INTERNAL = String.format(HAS_ROLE_TEMPLATE, ROLE_USER_INTERNAL);
}
Run Code Online (Sandbox Code Playgroud)

如果我再尝试使用HAS_ROLE_USER_INTERNAL作为@PreAuthorize注解的属性值,这样@PreAuthorize(SecurityConstants.HAS_ROLE_USER_INTERNAL)编译器失败:

注释属性PreAuthorize.value的值必须是常量表达式

但是,如果我改为HAS_ROLE_USER_INTERNAL简单,String它就可以正常工作:

public static final String HAS_ROLE_USER_INTERNAL = "hasRole('ROLE_USER_INTERNAL')";
Run Code Online (Sandbox Code Playgroud)

使用有什么问题String.format()?现场是staticfinal,有什么能可能出错?

java annotations constants string-formatting

6
推荐指数
1
解决办法
3851
查看次数