# Java 同步和异步异常

> 原文： [https://howtodoinjava.com/java/exception-handling/asynchronous-and-synchronous-exceptions-in-java/](https://howtodoinjava.com/java/exception-handling/asynchronous-and-synchronous-exceptions-in-java/)

在本 [Java 教程](https://howtodoinjava.com/java/basics/what-is-java-programming-language/)中，了解 Java 中的**异步和同步异常**。 了解[受检和非受检的异常](https://howtodoinjava.com/java/exception-handling/checked-vs-unchecked-exceptions-in-java/)的不同之处。

## 1\. 异步和同步异常

通常，Java 在发现时，会根据“定时”将**异常分为两类**。 这些类别是受检和非受检的异常。

类似地，基于出现位置，Java 异常可以进一步分为两类。

1.  同步异常
2.  异步异常

## 2\. 同步异常

同步异常**发生在特定的程序语句**上，无论我们在类似的执行环境中运行一个程序多少次。

同步异常的例子是我们在作为开发人员的日常生活中所关心的东西，例如`NullPointerException`或`ArrayIndexOutOfBoundsException`等。

例如，我们以相同的输入运行 Java 程序“N”次。 如果`NullPointerException`出现在行号“M”，则它们每次都将出现在同一行号。 这是 Java 中同步异常的示例。

## 3\. 异步异常

异步异常**实际上可以引发任何地方**。 因此，编译器不需要异步异常处理。 它们也很难编程。

自然异步事件的示例包括按`Ctrl-C`中断程序，或从另一个执行线程接收信号，例如“停止”或“挂起”。 例如，如果您在应用程序执行过程中按了`CTRL + C` N 次，则没人能保证应用程序将在其上结束的行号。

我希望有关 Java 同步和异步异常的讨论将有助于您进行编程活动以及 [Java 面试](https://howtodoinjava.com/java-interview-questions/)。

学习愉快！

阅读更多： [Oracle 文档](https://docs.oracle.com/cd/E19205-01/819-5267/bkahc/index.html)