例外をスローするには、raiseを使用します。プログラムにエラーがある場合、Pythonは自動的に例外を発生させます。または、raiseを使用して明示的に例外を発生させることもできます。一度raiseステートメントが実行されると、raiseに続くステートメントは実行できません。
try:
s = None
if s is None:
print "s 是空对象"
raise NameError #如果引发NameError异常,后面的代码将不能执行
print len(s)
except TypeError:
print "空对象没有长度"
カスタム例外pythonを使用すると、プログラマーは、pythonに関係のない例外を記述するために使用される例外をカスタマイズできます。カスタム例外はExceptionクラスを継承する必要があります。カスタム例外は、命名規則に従って「エラー」で終了します。これは、プログラマーにこれを明示的に通知します。例外です。カスタム例外はraiseステートメントを使用して発生し、手動でのみトリガーできます。デモレイズの使用法
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from __future__ import division
class DivisionException(Exception):
def __init__(self, x, y):
Exception.__init__ (self, x, y) #调用基类的__init__进行初始化
self.x = x
self.y = y
if __name__ == "__main__":
try:
x = 3
y = 2
if x % y > 0: #如果大于0, 则不能被初始化,抛出异常
print x/y
raise DivisionException(x, y)
except DivisionException,div: #div 表示DivisionException的实例对象
print "DivisionExcetion: x/y = %.2f" % (div.x/div.y)