是否有在Python中使用异常链的标准方法?像Java引起的'异常'一样?
这是一些背景知识.
我有一个带有一个主要异常类的模块DSError
:
class DSError(Exception):
pass
Run Code Online (Sandbox Code Playgroud)
在这个模块的某个地方会有:
try:
v = my_dict[k]
something(v)
except KeyError as e:
raise DSError("no key %s found for %s" % (k, self))
except ValueError as e:
raise DSError("Bad Value %s found for %s" % (v, self))
except DSError as e:
raise DSError("%s raised in %s" % (e, self))
Run Code Online (Sandbox Code Playgroud)
基本上这个片段应该只抛出DSError并告诉我发生了什么以及为什么.问题是try块可能会抛出很多其他异常,所以我更喜欢我能做的事情如下:
try:
v = my_dict[k]
something(v)
except Exception as e:
raise DSError(self, v, e) # Exception chained...
Run Code Online (Sandbox Code Playgroud)
这是标准的pythonic方式吗?我没有在其他模块中看到异常链,那么在Python中如何完成?
有没有办法在滚动时将Cusror位置保留在Vim/gVim的屏幕外?与许多Windows编辑器类似.
我知道标记,并使用它们.我也知道'.' 标记(最后编辑位置),但寻找其他想法.我问这个是因为有时我想把光标放在某个位置,使用鼠标滚轮滚动到另一个地方,然后只需按一下罗盘键或其他东西让我回到那个位置.
我有一个char*
数组如下:
char *tbl[] = { "1", "2", "3" };
Run Code Online (Sandbox Code Playgroud)
如何使用sizeof
运算符来获取数组的元素数量,这里3?
下面的确有效,但是它是否正确?
int n = sizeof(tbl) / sizeof(tbl[0])
Run Code Online (Sandbox Code Playgroud) 在JDK6中,有没有办法在文件中加载多个脚本,并让一个脚本引用另一个脚本的方法?有点像"包括"?
自上次保存以来,VIM是否可以突出显示已更改的行?我知道它可以通过版本控制完成,但可以不用吗?我不想使用任何版本控制系统,因为我工作的代码没有.
我认为UltraEdit有类似的东西.
如何在Groovy中深层复制地图地图?字符键是字符串或Ints.值以字符串,原始对象或其他映射,以递归方式.
我有这些类型:
type Value interface{}
type NamedValue struct {
Name string
Value Value
}
type ErrorValue struct {
NamedValue
Error error
}
Run Code Online (Sandbox Code Playgroud)
我可以使用v := NamedValue{Name: "fine", Value: 33}
,但我无法使用e := ErrorValue{Name: "alpha", Value: 123, Error: err}
似乎嵌入语法没问题,但使用它不起作用?
标准C++/STL中有这样的东西吗?理想情况下它应该像
fstring s = fstring(10);
Run Code Online (Sandbox Code Playgroud)
我有时需要构造或拥有一个固定大小的字符串.有时能够只读取/写入流中的那么多字符.
编辑:
请注意,大小仅在运行时已知,并且彼此不同.但是所有人都fstring
应该知道如何一起工作并拥有所有奇特的string
行为.
我阅读了文档,但更加困惑.
我有编译器生成以下错误:
rot;
^
"cpp\c1.cpp", line 13: error(114): identifier
"rot" is undefined
1 error detected in the compilation of "c1.cpp".
Run Code Online (Sandbox Code Playgroud)
我知道如何检测给出错误行的行,但我在错误列表中得到了大量额外无用的信息,错误消息分为两行,我更愿意合并.
我的开始错误格式是:
:set efm=\"%f\"\\,\ line\ %l:\ error(%n):\ %m
Run Code Online (Sandbox Code Playgroud)
既然我们在这里,有没有一种快速测试efm的方法,而不是一直试着运行make?
vim ×4
c ×1
c++ ×1
coding-style ×1
deep-copy ×1
embedding ×1
errorformat ×1
exception ×1
go ×1
groovy ×1
java ×1
javascript ×1
python ×1
python-2.x ×1
rhino ×1
sizeof ×1
string ×1
struct ×1