# JSTL`<c:catch>`核心标签

> 原文： [https://beginnersbook.com/2013/11/jstl-ccatch-core-tag/](https://beginnersbook.com/2013/11/jstl-ccatch-core-tag/)

`<c:catch>` JSTL 标签用于异常处理。之前我们分享了如何在 JSP 中进行异常处理 - 两种方式。在这篇文章中，我们将使用`<c:catch>`核心标签讨论异常处理。

#### 语法：

```html
<c:catch var ="variable_name">
 //Set of statements in which exception can occur
</c:catch>
```

`variable_name`可以是存储异常消息的任何变量。如果`<c:catch>`中包含的语句中发生异常那么这个变量包含异常消息。让我们借助一个例子来理解这一点。

#### 例

在这个例子中，我们故意通过将整数除以零来抛出算术异常，然后我们使用[表达式语言（EL）](https://beginnersbook.com/2013/11/jsp-expression-language-el/ "Expression language")打印`errormsg`变量（包含异常消息）。

**注**：如果`<c:catch>`中的语句块中没有异常那么变量（例如它的`errormsg`）应该具有空值。这就是我们在打印变量值之前检查`errormsg != null`的原因。

```html
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>JSTL c:catch Core Tag Example</title>
</head>
<body>
<%! 
int num1=10;
int num2=0; %>
<c:catch var ="errormsg">
  <% int res = num1/num2;
  out.println(res);%>
</c:catch>
<c:if test = "${errormsg != null}">
  <p>There has been an exception raised in the above
  arithmetic operation. Please fix the error.
  Exception is: ${errormsg}</p>
</c:if>
</body>
</html>
```

输出：

![c-catch-example](../Images/a83be30c7e990aff0330787266c3bb71.jpg)