<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 9 Oct 2020, at 11:11, Remi Forax <<a href="mailto:forax@univ-mlv.fr" class="">forax@univ-mlv.fr</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Following the course on exceptions, where i explain that a catch() is an instanceof,<br class="">two different students ask me why catch() can use '|' in between the exception types but instanceof can not.<br class=""><br class="">i.e why this code works<br class="">  try {<br class="">    ...<br class="">  } catch(RuntimeException | Error e) {<br class="">    throw e;<br class="">  } catch(Throwable t) {<br class="">    ...<br class="">  }<br class=""><br class="">but this one doesn't<br class="">  try {<br class="">    ...<br class="">  } catch(Throwable t) {<br class="">    if (t instanceof RuntimeException | Error e) {<br class="">      throw e;<br class="">    }<br class="">    ...<br class="">  }<br class=""><br class="">I wonder if people will want to do pattern matching on exceptions ?<br class=""></div></div></blockquote></div><br class=""><div class="">I’m sure they will! (We mentioned adding pattern matching to catch in our overview document <a href="https://cr.openjdk.java.net/~briangoetz/amber/pattern-match.html" class="">https://cr.openjdk.java.net/~briangoetz/amber/pattern-match.html</a>) The issue - as always - is how we reconcile the syntactic choices that have already been made, and the ones that are natural for our more general setting of pattern matching.</div><div class=""><br class=""></div><div class="">Gavin</div></body></html>