2012-07-17 6 views
5

これは少し奇妙な質問ですが、それは楽しいかもしれません!Pythonで意図的に例外を発生させることはできますか?

私は何とか確実にPythonで例外が発生する必要があります。私はそれが人間に誘発されることを望んでいますが、私はいつも例外を引き起こす何かを自分のコードに埋め込んでいます。

(私はいくつかの例外処理を設定していると、それをテストしたいと思います)私の周り見てきたし、いくつかのアイデアは、ゼロによる除算のように見えるか、これらの線に沿って何かが常に例外が発生します - より良いあり方法?最も理想的なのは、プログラムの実行中にインターネット接続の損失をシミュレートすることです....任意のアイデアは素晴らしいだろう!

楽しくお楽しみください!

+0

'' TypeError''を上げてください... – mouad

答えて

5

はい、あります:あなたは、明示的に、独自の例外を発生させることができます。

raise Exception("A custom message as to why you raised this.") 

ネットワーク接続が切断されたため、適切な例外/エラーを発生させたい場合があります。

+0

使いやすいです。それはすでに私のトンを助けている!ありがとう! – Mizmor

0

うん、あなただけの、特にこの場合には、エラーが発生する実行時のためにどこでもあなたのコード内のZeroDivisionError: integer division or modulo by zero

1/0 

をウンチすることができます。

これは(あなたがあなたの記事で述べたように)あなたのコードで何かを埋め込むことによって、例外を取得する最も簡単な方法です。もちろん、独自の例外を発生させることもできます。具体的なニーズに応じて異なります。

+2

...何が良いだろうか?シミュレートしたいエラーを表現するのに十分な仕事をしません。代わりに 'ZeroDivisionError'だけです。 – Makoto

+0

@Makoto OPを引用するには: "いつも例外を引き起こす何かを私のコードに埋め込んでもいいですか" ..あなたはOPにあなたのコメントをするのが一番です。 – Levon

3

、あなたのニーズに合わせてカスタムエラーを作成できるようにするには、Pythonで独自の例外を定義することができます。あなたは、特定の条件が存在することをテストし、あなたの光沢のある、カスタム例外を発生させるかどうかを決定するためにそのテストのtruthinessを使用することができます。

class MyFancyException(Exception): pass 

def do_something(): 
    if sometestFunction() is True: 
     raise MyFancyException 
    carry_on_theres_nothing_to_see()  

try: 
    do_something() 
except MyFancyException: 
    # This is entirely up to you! 
    # What needs to happen if the exception is caught? 

documentationは、いくつかの有用な例があります。 ``上げる... ``、例えば:あなたはあなたのコードに入れることができます

+0

これは本当に良いです!私は余分な時間を取るときにいつか私自身のものを作り出すでしょう。ありがとう! – Mizmor

関連する問題