Skip to content

Commit 2f2c343

Browse files
committed
Fail early when given class is not a lambda handler
1 parent b34de5a commit 2f2c343

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/main/php/xp/lambda/RunLambda.class.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php namespace xp\lambda;
22

3-
use com\amazon\aws\lambda\{Environment, Context};
4-
use lang\{XPClass, Throwable};
3+
use com\amazon\aws\lambda\{Context, Environment, Handler};
4+
use lang\{XPClass, Throwable, IllegalArgumentException};
55
use util\UUID;
66
use util\cmd\Console;
77

@@ -23,9 +23,14 @@ class RunLambda {
2323
* @param string $handler
2424
* @param string... $events
2525
* @throws lang.ClassLoadingException
26+
* @throws lang.IllegalArgumentException
2627
*/
2728
public function __construct($handler= 'Handler', ... $events) {
2829
$this->impl= XPClass::forName($handler);
30+
if (!$this->impl->isSubclassOf(Handler::class)) {
31+
throw new IllegalArgumentException('Class '.$handler.' is not a lambda handler');
32+
}
33+
2934
$this->events= $events ?: ['{}'];
3035
}
3136

0 commit comments

Comments
 (0)