无论Excpetion类型如何,我都希望在发生异常时打印消息.
我尝试了以下方法:
class MyException(BaseException):
def __init__(self, msg):
super(BaseException, self).__init__(msg)
print "Howdy", msg
__builtins__.Exception = MyException
try:
raise IOError("world")
except Exception as e:
pass
Run Code Online (Sandbox Code Playgroud)
我期待打印"Howdy world",但我什么都没得到.
编辑:
@helmut建议使用sys.settrace,以下代码按预期工作.
import sys
def trace(frame, event, arg):
print event
return trace
sys.settrace(trace)
def foo():
raise Exception()
def bar():
foo()
def baz():
try:
bar()
except:
pass
baz()
exit()
Run Code Online (Sandbox Code Playgroud)
太糟糕了,这对我的用例来说太慢了.
基本上我一直在研究一个功能,但是当我将该功能推回到主仓库以进行代码审查时,他们喜欢整个功能被推送为一次提交.我通常使用git rebase -i这个并设置除第一次提交以外的所有内容和第一次编辑.然后我会在每次发生冲突时粘贴最新的文件.
我宁愿不必在冲突期间粘贴各种文件.我希望能够保留最新的文件,并基本上删除它们如何变得更简单的命令的历史记录.
编辑:
我正在寻找一个等同于这个bash脚本的Git命令:
for file in `git diff --name-only master foo`
git checkout foo $file
Run Code Online (Sandbox Code Playgroud)