teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コードを追加

2020/07/14 02:17

投稿

bsdfan
bsdfan

スコア4921

answer CHANGED
@@ -1,3 +1,25 @@
1
1
  AWS Lambdaのpythonでは、`sys.exit()`は質問にも書かれてるエラーが出るので、使えません。
2
2
 
3
- 代替としてパッと思いつくのは、exitしたいところでなんらかのExceptionを投げて、一番上のハンドラ関数でそれを拾って`return`するようなコードでしょうか。
3
+ 代替としてパッと思いつくのは、exitしたいところでなんらかのExceptionを投げて、一番上のハンドラ関数でそれを拾って`return`するようなコードでしょうか。
4
+
5
+ ```python
6
+ # ハンドラー終了用のExceptionを定義
7
+ class ExitHandler(Exception):
8
+ def __init__(self, value=None):
9
+ super(ExitHandler, self).__init__()
10
+ self.value = value
11
+
12
+ def lambda_handler(event, context):
13
+ try:
14
+ a = 'eigo'
15
+ output_name = check_name(a)
16
+ print(output_name)
17
+ except ExitHandler as e:
18
+ return e.value
19
+
20
+ def check_name(a):
21
+ if a == "eigo":
22
+ print("eigo")
23
+ raise ExitHandler(0)
24
+ return {'state': "fin"}
25
+ ```