わかりやすくするために質問を編集しています。
MySQLdbをインポートするモジュールにクラスを作成しました。ユーザーがクラスに渡すテーブルが存在しない場合、MySQLdbで例外が発生することがわかりました。私はその例外をキャッチし、新しい例外をクライアントに渡します。しかし、クライアントが私の例外をキャッチしたとしても、プログラムは終了します。また、MySQLdbがクラスに与えるのと同じ例外をクライアントに渡そうとしました。
クライアントはループで私のメソッドを呼び出し、さまざまなテーブル名を渡すので、テーブル名が悪い場合にプログラムがチョークするのは望ましくありません。クライアントの反復を次の有効なテーブル名まで続行してほしい。スニペットは次のとおりです(tableNameはメソッドへの引数パスです):
私のクラス/モジュール:
self.tableName = tableName 試す: self.cursor.execute( "select * from" + self.tableName + ";")#テーブルが存在しない場合は例外が発生します。 それ外: MyException( "\ n ***" + self.tableName + "は存在しません。***")を発生させます
クライアントの場合:
テーブル=["BadTableName"、 "GoodTableNameA"、 "GoodTableNameB"、 "GoodTableNameC"] 試す: テーブル内のテーブルの場合: my_method(table)#ExceptionメッセージはBadTableNameで渡されますが、プログラムは終了します。このループのサブシークエストの反復は決して発生しません 例外を除いて、e: eを印刷する
my_method(BadTableName)を呼び出した後も、クライアントに続行してもらいたい。
ちなみに、my_method()は、クライアントがインポートしている独自のモジュールで定義されたクラスの一部です。
ありがとうございました。