# एक्सेप्शन — कोर जावा

Source: https://www.geekswithgeeks.com/hi/core-java/java-exceptions

> try / catch / finally से विफलताएँ संभालें, checked बनाम unchecked पहचानें, try-with-resources से संसाधन मुक्त करें, और त्रुटियाँ चुपचाप न दबाएँ।

## checked बनाम unchecked

**Checked** एक्सेप्शन को `throws` या catch करना अनिवार्य है (जैसे `IOException`)। **Unchecked** (जैसे `NullPointerException`) आमतौर पर बग होते हैं।

## try-with-resources

`try (...)` में घोषित `AutoCloseable` अपने-आप बंद होता है, एक्सेप्शन आने पर भी।

```java
try (var reader = Files.newBufferedReader(path)) {
    return reader.readLine();
} catch (IOException e) {
    throw new UncheckedIOException(e);
}
```

## एक्सेप्शन न दबाएँ

खाली `catch` ब्लॉक विफलताओं को छुपाता है। कम-से-कम स्टैक ट्रेस लॉग करें या संदर्भ के साथ दोबारा फेंकें।
