0

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 を返しました

4

1 に答える 1

0

try catch はメソッドを無視しません。通常の流れで実行し、IF例外が発生した場合はそれを処理します。以下を検討してください。

def raising_method():
    print "a"
    print "b"
    raise Exception

try:
    raising_method()
except Exception as e:
    pass

「a」と「b」は引き続き出力されます。

それはあなたの問題かもしれませんか?curses モジュールを知らないので、モジュール固有のことは言えません。

于 2014-10-03T08:50:24.810 に答える