2012年9月18日火曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のVII部(例外)の27章(例外の基礎知識)練習問題1を解いてみる。

その他参考書籍

2.

  1. try/except/else
  2. try/except/finally
  3. try/finally

というような種類がある。

コード(TextWrangler)

sample.py

#!/usr/bin/env python
#-*- coding: utf-8 -*-

def f(n):
 try:
  print("try/except/elseステートメント開始")
  a = 10 / n
  print("tryブロック終了")
 except:
  print("例外発生")
 else:
  print("elseブロック")

def g(n):
 try:
  print("try/finallyステートメント開始")
  a = 10 / n
  print("tryブロック終了")
 finally:
  print("finallyブロック")

def h(n):
 try:
  print("try/except/finallyステートメント開始")
  a = 10 / n
  print("tryブロック終了")
 except:
  print("例外発生")
 finally:
  print("finallyブロック")

入出力結果(Terminal)

$ python
Python 3.2.3 (default, Apr 18 2012, 20:17:30) 
[GCC 4.2.1 Compatible Apple Clang 3.0 (tags/Apple/clang-211.12)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from sample import f,g,h
>>> f(0)
try/except/elseステートメント開始
例外発生
>>> f(1)
try/except/elseステートメント開始
tryブロック終了
elseブロック
>>> g(0)
try/finallyステートメント開始
finallyブロック
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "sample.py", line 17, in g
    a = 10 / n
ZeroDivisionError: division by zero
>>> g(10)
try/finallyステートメント開始
tryブロック終了
finallyブロック
>>> h(0)
try/except/finallyステートメント開始
例外発生
finallyブロック
>>> h(10)
try/except/finallyステートメント開始
tryブロック終了
finallyブロック
>>> quit()
$

0 コメント:

コメントを投稿