aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotty/tools/dotc/parsing/Parsers.scala9
-rw-r--r--tests/neg/emptyCatch.scala3
2 files changed, 12 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/parsing/Parsers.scala b/src/dotty/tools/dotc/parsing/Parsers.scala
index 4bc706436..a06930058 100644
--- a/src/dotty/tools/dotc/parsing/Parsers.scala
+++ b/src/dotty/tools/dotc/parsing/Parsers.scala
@@ -1009,6 +1009,15 @@ object Parsers {
in.nextToken()
expr()
} else EmptyTree
+
+ handler match {
+ case Block(Nil, EmptyTree) => syntaxError(
+ "`catch` block does not contain a valid expression, try adding a case like - `case e: Exception =>` to the block",
+ handler.pos
+ )
+ case _ =>
+ }
+
val finalizer =
if (in.token == FINALLY) { accept(FINALLY); expr() }
else {
diff --git a/tests/neg/emptyCatch.scala b/tests/neg/emptyCatch.scala
new file mode 100644
index 000000000..60951d27a
--- /dev/null
+++ b/tests/neg/emptyCatch.scala
@@ -0,0 +1,3 @@
+object Test {
+ try {} catch {} // error: `catch` block does not contain a valid expression, try adding a case like - `case e: Exception =>` to the block
+}