[go: up one dir, main page]

0% found this document useful (0 votes)
13 views8 pages

What Is An Exception in Jav

The document provides an overview of exception handling in Java, explaining what exceptions are, how they are handled using keywords like try, catch, and finally, and the distinction between checked and unchecked exceptions. It also covers the Java exception hierarchy, the use of custom exceptions, and best practices for exception handling. Additionally, it discusses related concepts such as chained exceptions, the try-with-resources statement, and the significance of stack traces.

Uploaded by

Ashwini
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views8 pages

What Is An Exception in Jav

The document provides an overview of exception handling in Java, explaining what exceptions are, how they are handled using keywords like try, catch, and finally, and the distinction between checked and unchecked exceptions. It also covers the Java exception hierarchy, the use of custom exceptions, and best practices for exception handling. Additionally, it discusses related concepts such as chained exceptions, the try-with-resources statement, and the significance of stack traces.

Uploaded by

Ashwini
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

1. What is an Exception in Java?

An exception in Java is an event that occurs during the execution


of a program, disrupting the normal flow of instructions.
Exceptions are objects that encapsulate information about an
error condition that has occurred within a method or block of
code.

2. How does Exception Handling Work in Java?


Java exception handling works by using a combination of try,
catch, finally, throw, and throws keywords. When an exception
occurs in a try block, it is thrown to the corresponding catch
block. If the exception is not caught, it propagates up the call
stack. The finally block is executed regardless of whether an
exception was thrown or caught. The throw keyword is used to
explicitly throw an exception, while the throws keyword is used to
declare that a method might throw one or more exceptions.

3. What are the Exception Handling Keywords in Java?


The exception-handling keywords in Java are:

try
catch
finally
throw
throws
4. What is the purpose of the throw and throws keywords?
throw: Used to explicitly throw an exception in a method or block
of code.
throws: Used in a method signature to declare that the method
might throw one or more exceptions.
5. How can you handle an exception?
You can handle an exception using a try-catch block. Place the
code that might throw an exception inside the try block, and
handle the exception in the catch block. Optionally, you can use a
finally block to execute code regardless of whether an exception
was thrown or caught.

Example:
try {
// Code that might throw an exception
} catch (ExceptionType e) {
// Code to handle the exception
} finally {
// Code that will always execute
}
6. Explain Java Exception Hierarchy?
The exception hierarchy in Java is as follows:

java.lang.Object
└── java.lang.Throwable
├── java.lang.Exception
│ ├── java.io.IOException
│ ├── java.sql.SQLException
│ └── java.lang.RuntimeException
│ ├── java.lang.NullPointerException
│ ├── java.lang.ArrayIndexOutOfBoundsException
│ └── java.lang.ArithmeticException
└── java.lang.Error
├── java.lang.OutOfMemoryError
├── java.lang.StackOverflowError
└── java.lang.VirtualMachineError
7. How can you catch multiple exceptions?
You can catch multiple exceptions by using multiple catch blocks
or a single catch block that handles multiple exception types (Java
7 and later).

Example:

try {
// Code that might throw multiple exceptions
} catch (IOException | SQLException e) {
// Code to handle IOException or SQLException
} catch (Exception e) {
// Code to handle other exceptions
}
8. What is the difference between Checked and Unchecked
Exceptions in Java?
Checked Exceptions: Checked at compile-time. Must be either
caught or declared in the method signature using the throws
keyword. Examples: IOException, SQLException.
Unchecked Exceptions: Not checked at compile-time. They are
subclasses of RuntimeException. Examples: NullPointerException,
ArrayIndexOutOfBoundsException.
9. What is the difference between the throw and throws keywords
in Java?
throw: Used to explicitly throw an exception. Example:
throw new IllegalArgumentException("Invalid argument");
throws: Used in a method signature to declare that the method
might throw one or more exceptions. Example:
public void method() throws IOException, SQLException {
// Method body
}
10. What is the difference between an exception and an error?
Exception: Represents conditions that a program might want to
catch and handle. They are recoverable conditions.
Error: Represents serious issues that a reasonable application
should not try to catch. They are usually external to the
application and indicate problems with the environment, such as
the Java Virtual Machine (JVM) running out of memory.
11. What is OutOfMemoryError in Java?
OutOfMemoryError is an error that occurs when the Java Virtual
Machine (JVM) cannot allocate an object because it is out of
memory. The JVM throws this error to indicate that the heap
memory has been exhausted.

12. What are Chained Exceptions in Java?


Chained exceptions allow you to relate one exception with
another, forming a chain of exceptions. This is useful when an
exception occurs as a direct result of another exception. You can
create a chained exception by passing the original exception as a
parameter to the constructor of the new exception.

Example:

public class ChainedExceptionDemo {


public static void main(String[] args) {
try {
method1();
} catch (Exception e) {
e.printStackTrace();
}
}

public static void method1() throws Exception {


try {
method2();
} catch (Exception e) {
throw new Exception("Exception in method1", e);
}
}

public static void method2() throws Exception {


throw new Exception("Exception in method2");
}
}
13. How to write custom exceptions in Java?
You can create custom exceptions by extending the Exception
class or any of its subclasses. Custom exceptions are useful for
specific error conditions relevant to your application.

Example:

class InvalidAgeException extends Exception {


public InvalidAgeException(String message) {
super(message);
}
}

public class CustomExceptionExample {


public static void main(String[] args) {
try {
validateAge(15);
} catch (InvalidAgeException e) {
System.out.println("Caught custom exception: " +
e.getMessage());
}
}

public static void validateAge(int age) throws


InvalidAgeException {
if (age < 18) {
throw new InvalidAgeException("Age must be 18 or
older.");
}
System.out.println("Age is valid.");
}
}
14. What is the difference between final, finally, and finalize in
Java?
final: A keyword used to define constants, prevent inheritance,
and prevent method overriding.
finally: A block that is executed after the try-catch block,
regardless of whether an exception was thrown or caught.
finalize: A method called by the garbage collector before an
object is destroyed. It is used to perform cleanup operations.
15. What happens when an exception is thrown by the main
method?
If an exception is thrown by the main method and not caught
within the main method, the JVM handles it by printing the stack
trace to the standard error stream and terminating the program.

16. What is a try-with-resources statement?


The try-with-resources statement is a try statement that declares
one or more resources. A resource is an object that must be
closed after the program is finished with it. The try-with-resources
statement ensures that each resource is closed at the end of the
statement.

Example:

try (BufferedReader br = new BufferedReader(new


FileReader("file.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
17. What is a stack trace and how does it relate to an exception?
A stack trace is a list of method calls that the application was in
the middle of when an exception was thrown. It provides
information about the sequence of method calls that led to the
exception, helping developers debug the error by showing the
exact point where the exception occurred.

18. What are the Advantages of Java Exceptions?


Separation of Error Handling Code from Regular Code: Improves
readability and maintainability of code.
Propagating Errors Up the Call Stack: Allows a method to catch
and handle exceptions thrown by methods it calls.
Grouping and Differentiating Error Types: Provides a way to handle
different types of errors in different ways.
19. Can you throw any exception inside a lambda expression’s
body?
Yes, you can throw exceptions inside a lambda expression's body.
However, if the exception is a checked exception, the functional
interface method that the lambda expression implements must
declare that it throws the exception.

Example:

@FunctionalInterface
interface ThrowingConsumer<T> {
void accept(T t) throws Exception;
}

public class LambdaExceptionDemo {


public static void main(String[] args) {
ThrowingConsumer<Integer> consumer = (Integer i) -> {
if (i < 0) {
throw new Exception("Negative value not allowed");
}
System.out.println(i);
};

try {
consumer.accept(-1);
} catch (Exception e) {
System.out.println("Caught exception: " +
e.getMessage());
}
}
}
20. What are the rules we need to follow when overriding a
method that throws an exception?
When overriding a method that throws an exception:

The overridden method can only throw the same exceptions or


subclasses of the exceptions declared by the parent method.
The overridden method cannot throw new or broader checked
exceptions than those declared by the parent method
.

Example:

class Parent {
public void method() throws IOException {
// Method body
}
}

class Child extends Parent {


@Override
public void method() throws FileNotFoundException {
// Method body
}
}
21. Java Exception Handling Best Practices
Catch Specific Exceptions: Catch the most specific exception first
to handle known error conditions.
Use Finally Block for Cleanup: Ensure that resources are properly
closed using the finally block or try-with-resources.
Log Exceptions: Log exceptions with sufficient details to help with
debugging.
Throw Custom Exceptions for Business Logic Errors: Create
custom exceptions for specific error conditions relevant to your
application.
Avoid Swallowing Exceptions: Do not catch exceptions without
handling them or rethrowing them.
Example of Best Practices:

public class ExceptionHandlingBestPractices {


public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new
FileReader("file.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (FileNotFoundException e) {
System.err.println("File not found: " + e.getMessage());
} catch (IOException e) {
System.err.println("I/O error: " + e.getMessage());
}
}
}

You might also like