質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

例外

例外(exception)とは、プログラムの処理実行中に発生する、通常の処理の続行を妨げる特殊な事象のことを呼びます。この「例外」が発生した場合に、現在の処理を中断し、変わりに別の処理を実行させる事を「例外処理」と呼びます。

例外処理

例外処理(Exception handling)とは、プログラム実行中に異常が発生した場合、通常フローから外れ、例外として別の処理を行うようにデザインされたプログラミング言語構造です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1045閲覧

例外のインスタンス化について

pythonsyosinsya

総合スコア11

Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

例外

例外(exception)とは、プログラムの処理実行中に発生する、通常の処理の続行を妨げる特殊な事象のことを呼びます。この「例外」が発生した場合に、現在の処理を中断し、変わりに別の処理を実行させる事を「例外処理」と呼びます。

例外処理

例外処理(Exception handling)とは、プログラム実行中に異常が発生した場合、通常フローから外れ、例外として別の処理を行うようにデザインされたプログラミング言語構造です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/09/15 09:49

Pythonチュートリアル内のコードについて、

try:
raise Exception("spam","eggs")
except Exception as inst:
print(type(inst)) #例外インスタンスの型
print(inst.args) #.argsに格納された引数
print(inst.args) #__str__により引数は直接表示可能であるが、
print(inst)     #これは例外のサブクラスでオーバーライドされうる

x,y = inst.args #引数のアンパック
print("x =",x)
print("y =",y)
とあるのですが、
①try節のExceptionに与えられている("spam","eggs")とは何なのか、
②変数instには何が入るのか、
③そもそもこのコードで何をしようとしているのか
が分からず悩んでおります。
ご回答いただけますと幸いです。よろしくお願いいたします。
出力は下記のようになります。
<class 'Exception'>
('spam', 'eggs')
('spam', 'eggs')
('spam', 'eggs')
x = spam
y = eggs

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2020/09/15 10:16

コードは修正時の "<コード>" または "<code>"で出てくる奴の中にかいてください。 読みづらいです。
guest

回答2

0

①try節のExceptionに与えられている("spam","eggs")とは何なのか、

引き数です。

②変数instには何が入るのか、

raiseした例外です。

③そもそもこのコードで何をしようとしているのか

例外の説明では?

投稿2020/09/15 11:50

otn

総合スコア84830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

③そもそもこのコードで何をしようとしているのか

Exceptionのargs属性のサンプルです

①try節のExceptionに与えられている("spam","eggs")とは何なのか、

Exceptionのargs属性に格納したい文字列です

②変数instには何が入るのか、

raiseした「args属性に("spam","eggs")を格納した例外オブジェクト」です


つまり、

操作例「このパネルで『ヤマダ タロウ』と入力してこのボタンを押してください。表示画面のここに氏名が表示されます」

という説明を読んで

①「ヤマダ タロウ」とは何なのか?
②「表示画面」には何が表示されるのか?
③そもそもこの文はなんなのか?

と質問したようなものです。

①氏名のサンプル
②あなたが入力した氏名
③氏名入力の操作例

が答えですよね?


「入力してこのボタンを押してください」が raise に、「表示画面のここに」がexcept Exception as instに相当するイメージでしょうか。

「そもそも何の操作例なのか」「例外とはなんなのか」ということは、メタな認識としてあらかじめ持っておく必要があるわけです。
そうでないと、「ここにデータを入れると、ここから取り出せる」という説明のポイントが「**《ここに》データを入れると、《ここから》**取り出せる」の部分のはずなのに、そうは読めずに「("spam","eggs")とは何なのか? 何が格納されるのか?」「ヤマダ タロウとはなんなのか? 表示画面には何が表示されるのか?」という疑問になってしまうのです。

「そもそも何の操作例なのか」「例外とはなんなのか」は別に学習する必要があります。
もしくはたくさんのサンプルから帰納的に推測していく方向でもいいかもしれません。

投稿2020/09/15 22:50

編集2020/09/15 23:25
quickquip

総合スコア11072

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pythonsyosinsya

2020/09/16 06:27

ご丁寧に説明していただきありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問