0

なぜ名前解決エラーがEXCEPTによってキャッチされないのですか?また、エラーテキストを取得してロガー機能にスローするにはどうすればよいですか?ありがとうございました。

logging.basicConfig(filename = "{}.log".format(sys.argv[0]), level=logging.DEBUG)

def simpleLogger(something):
     try :
         something
         logging.info("Iteration fine")
     except :

         logging.warning("Something bad happened!")

 def doSometh():
     conn = psycopg2.connect(host = "1x18.249.21" , user = "tima",  dbname = "tima")
     curr = conn.cursor()
     sql = "select * from app_catalog;"

     curr.execute(sql)

     print curr.fetchall()

 def main():
    simpleLogger(doSometh())


 if __name__ == '__main__':
     sys.exit(main())

生成されたエラーは次のとおりです。

conn = psycopg2.connect(host = "172.x18.249.21" , user = "tima",  dbname = "tima")
File "/apps/appeng/python-2.7.3/lib/python2.7/site-packages/psycopg2/__init__.py", line   179, in connect   connection_factory=connection_factory, async=async)
psycopg2.OperationalError: could not translate host name "172.x18.249.21" to address: Name or service not known
4

1 に答える 1

1

これが実際のコード構造を表す場合は、呼び出し可能オブジェクトを渡してから呼び出すのではなく、simpleLoggerに渡す時点で実際にdoSomething()関数を呼び出しています。したがって、実行はtry/exceptブロック内では行われません。

于 2012-12-03T19:08:36.227 に答える