diff options
author | Felix Mulder <felix.mulder@gmail.com> | 2016-09-14 11:46:07 +0200 |
---|---|---|
committer | Felix Mulder <felix.mulder@gmail.com> | 2016-09-15 16:58:55 +0200 |
commit | d1eeb5ffd9ee701f0ffce21eac10227328178113 (patch) | |
tree | 3dd3838ad2f969a10837d5c1b6ec2b229e0a0929 | |
parent | a73fd7790c7ef788d8718b09b93e8ba494b31778 (diff) | |
download | dotty-d1eeb5ffd9ee701f0ffce21eac10227328178113.tar.gz dotty-d1eeb5ffd9ee701f0ffce21eac10227328178113.tar.bz2 dotty-d1eeb5ffd9ee701f0ffce21eac10227328178113.zip |
Improve error message on empty catch block
-rw-r--r-- | src/dotty/tools/dotc/parsing/Parsers.scala | 9 | ||||
-rw-r--r-- | tests/neg/emptyCatch.scala | 3 |
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 +} |