小编Aym*_*man的帖子

Python异常链接

是否有在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中如何完成?

python coding-style exception python-2.x

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

Vim在滚动时保持光标位置

有没有办法在滚动时将Cusror位置保留在Vim/gVim的屏幕外?与许多Windows编辑器类似.
我知道标记,并使用它们.我也知道'.' 标记(最后编辑位置),但寻找其他想法.我问这个是因为有时我想把光标放在某个位置,使用鼠标滚轮滚动到另一个地方,然后只需按一下罗盘键或其他东西让我回到那个位置.

vim

48
推荐指数
5
解决办法
6610
查看次数

vim copy命令到剪贴板/缓冲区

如何将ex命令复制到剪贴板或将其粘贴到缓冲区?

在Windows上使用gvim.

vim

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

C sizeof char*数组

我有一个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)

c sizeof

29
推荐指数
2
解决办法
9万
查看次数

JavaScript(Rhino)使用库或包含其他脚本

在JDK6中,有没有办法在文件中加载多个脚本,并让一个脚本引用另一个脚本的方法?有点像"包括"?

javascript java rhino

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

Vim - 突出显示更改的行

自上次保存以来,VIM是否可以突出显示已更改的行?我知道它可以通过版本控制完成,但可以不用吗?我不想使用任何版本控制系统,因为我工作的代码没有.

我认为UltraEdit有类似的东西.

vim

23
推荐指数
2
解决办法
6947
查看次数

Groovy中的深拷贝映射

如何在Groovy中深层复制地图地图?字符键是字符串或Ints.值以字符串,原始对象或其他映射,以递归方式.

groovy deep-copy

23
推荐指数
5
解决办法
2万
查看次数

Golang嵌入式结构类型

我有这些类型:

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}

似乎嵌入语法没问题,但使用它不起作用?

struct embedding go composite-literals

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

C++固定长度的字符串类?

标准C++/STL中有这样的东西吗?理想情况下它应该像

fstring s = fstring(10);
Run Code Online (Sandbox Code Playgroud)

我有时需要构造或拥有一个固定大小的字符串.有时能够只读取/写入流中的那么多字符.

编辑:

请注意,大小仅在运行时已知,并且彼此不同.但是所有人都fstring应该知道如何一起工作并拥有所有奇特的string行为.

c++ string

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

Vim errorformat

我阅读了文档,但更加困惑.
我有编译器生成以下错误:

          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 errorformat

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