大文字と小文字を意識して書かないとPython警察に捕まりそうなので色々訂正。
あった。そういえば。こんなイメージ。Java でいうtry-catchですなぁ。
try:
// 例外が発生する可能性のある処理を囲む
<code....>
except <例外の種類>:
// 例外が発生したときに書く処理
<code....>
else:
// こっちには正常時のみの処理
<code>
Java でよくみる、発生した例外を全部ぶち込んでいけというサンプルを書きたいなら except で例外を指定しなければおk。サンプル以外でそんなコードを書いて怒られないのかおk?なのかは知らない。
try:
<code....>
except:
<code....>
無理やり例外を発生させることも出来る。どんなときに利用できるのかはわからない。
raise <例外クラス>(<message>)
raise MemoryError("メモリが足りない(嘘)")
% python3 ./hogehoge.py
Traceback (most recent call last):
File "/foo/bar/hogehoge.py", line 2, in <module>
raise MemoryError("メモリが足りない(嘘)")
MemoryError: メモリが足りない(嘘)
で、これらを組み合わせるとこんな感じでメモリが足りないとサボタージュが出来る(嘘) 例外を e に放り込むのはJavaもPythonも同じような感覚っぽい。MS系だとErrとか言いそうなものだけれども。
try:
raise MemoryError("メモリが足りない(嘘)")
print("超絶コスト高のスゴい処理が延々と続く")
except MemoryError as e:
print(e)
else:
print("処理完遂!")
$ python3 ./hogehoge.py
メモリが足りない(嘘)
list
hogehoge = ['ABCD','XYZ',123,123]
hogehoge[0] = 'EFG'
python3 ./hogehoge.py
['EFG', 'XYZ', 123, 123]
tuple
hogehoge = ('ABCD','XYZ',123,123)
hogehoge[0] = 'EFG'
python3 ./hogehoge.py
Traceback (most recent call last):
File "/foo/bar/hogehoge.py", line 2, in <module>
hogehoge[0] = 'EFG'
~~~~~~~~^^^
TypeError: 'tuple' object does not support item assignment
set
hogehoge = {'ABCD','XYZ',123,123}
hogehoge.add(114514)
python3 ./hogehoge.py
{'XYZ', 114514, 123, 'ABCD'}
import glob
// カレントにあるマークダウンのファイル名をゲットしたい
file = glob.glob('./*.md')
print(file)