使用python的curses模块我知道在右下角写入会引发错误(与光标没有“下一个地方”有关)。
但我不在乎;我想要的只是在可能的情况下写一个角色,否则没什么大不了的。所以我虽然使用了try-except-pass构造
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import curses
def doStuff(stdscr):
Y , X = stdscr.getmaxyx() # get screen size
try:
stdscr.addch(Y-1,X-1,'X') # try to print in forbiden corner
except:
pass # do nothing when error is raised
stdscr.refresh()
stdscr.getch()
curses.wrapper(doStuff)
我认为它会“通过”并忽略“addch”指令。 但令我惊讶的是这个角色被打印出来了!
有人可以解释一下原因吗?
ps:我确认没有try-except结构,我得到:
_curses.error:addch()返回ERR
答案 0 :(得分:0)
尝试catch不会忽略方法。它在正常流程中执行它,并引发IF异常处理它。请考虑以下事项:
def raising_method():
print "a"
print "b"
raise Exception
try:
raising_method()
except Exception as e:
pass
“a”和“b”仍将被打印。
可能是你的问题?我不知道curses模块,所以不能告诉你任何模块特定的。