Java异常——处理机制Try-catch-finally

简介: Java异常——处理机制Try-catch-finally

一、概念

Try-catch-finally不一定要同时存在,就像if else一样,可以只有Try-catch,没有finally

try{}语句块中放的是要检测的java代码,可能有会抛出异常,也可能会正常执行
catch(异常类型){}块是当java运行时系统接收到try块中所抛出的异常对象时,会寻找能处理这异常catch块来处理(可以有多个catch块)
finally{}不管系统有没有抛出异常都会去执行,一般用来释放资源,除了在之前执行了System.exit(0)

二、代码理解

try-finally

class Person{

String name;

}

public class Test {

public static void main(String[] args) {    
    Person p = null;
    //try里的代码出错,还会继续执行代码,程序不会中断
    try{
        p.name = "xiao";
    }finally{
        System.out.println("end");
    }
}

}
/*
end
Exception in thread "main" java.lang.NullPointerException

at Test.main(Test.java:10)

*/

Try-catch-finally

class Person{

String name;

}

public class Test {

public static void main(String[] args) {    
    Person p = null;
    try{
        p.name = "xiao";
    }catch(java.lang.NullPointerException e){
        System.out.println("空指针异常");    //异常处理程序
    }finally{
        System.out.println("end");
    }
}

}
/*
空指针异常
end
*/

Try-catch

import java.util.Scanner;

class Person{

String name;

}

public class Test {

public static void main(String[] args) {    
    Scanner sc = new Scanner(System.in);
    Person p = null;
    int a =10;
    int b = 0;
    double c = 0.0;
    System.out.println("请输入除数:");
    b = sc.nextInt();
    try{
        p.name = "xiao";
        c = (double)a/b;
    }catch(Exception e){    //捕获所有异常,只要有异常,就会执行里面代码
        System.out.println("空指针异常");    //捕获到空指针,就会执行下面的语句,即便是没有出现异常
        System.out.println("输入了0,重新输入");
        b = sc.nextInt();
        c = (double)a/b;
        System.out.println("c=" + c);
    }
    System.out.println("c=" + c);
    System.out.println("end1");
}

}

/*
请输入除数:
2
空指针异常 //捕获了所有异常
输入了0,重新输入
2
c=5.0
c=5.0
end1
*/

目录
相关文章
|
7天前
|
XML 安全 Java
Java反射机制:解锁代码的无限可能
Java 反射(Reflection)是Java 的特征之一,它允许程序在运行时动态地访问和操作类的信息,包括类的属性、方法和构造函数。 反射机制能够使程序具备更大的灵活性和扩展性
18 5
Java反射机制:解锁代码的无限可能
|
1天前
|
安全 IDE Java
Java反射Reflect机制详解
Java反射(Reflection)机制是Java语言的重要特性之一,允许程序在运行时动态地获取类的信息,并对类进行操作,如创建实例、调用方法、访问字段等。反射机制极大地提高了Java程序的灵活性和动态性,但也带来了性能和安全方面的挑战。本文将详细介绍Java反射机制的基本概念、常用操作、应用场景以及其优缺点。 ## 基本概念 ### 什么是反射 反射是一种在程序运行时动态获取类的信息,并对类进行操作的机制。通过反射,程序可以在运行时获得类的字段、方法、构造函数等信息,并可以动态调用方法、创建实例和访问字段。 ### 反射的核心类 Java反射机制主要由以下几个类和接口组成,这些类
7 2
|
6天前
|
Java
如何在 Java 中处理“Broken Pipe”异常
在Java中处理“Broken Pipe”异常,通常发生在网络通信中,如Socket编程时。该异常表示写入操作的另一端已关闭连接。解决方法包括:检查网络连接、设置超时、使用try-catch捕获异常并进行重试或关闭资源。
|
6天前
|
存储 缓存 安全
🌟Java零基础:深入解析Java序列化机制
【10月更文挑战第20天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
14 3
|
6天前
|
安全 Java UED
深入理解Java中的异常处理机制
【10月更文挑战第25天】在编程世界中,错误和意外是不可避免的。Java作为一种广泛使用的编程语言,其异常处理机制是确保程序健壮性和可靠性的关键。本文通过浅显易懂的语言和实际示例,引导读者了解Java异常处理的基本概念、分类以及如何有效地使用try-catch-finally语句来处理异常情况。我们将从一个简单的例子开始,逐步深入到异常处理的最佳实践,旨在帮助初学者和有经验的开发者更好地掌握这一重要技能。
14 2
|
8天前
|
Java 数据库连接 开发者
Java中的异常处理机制####
本文深入探讨了Java语言中异常处理的核心概念,通过实例解析了try-catch语句的工作原理,并讨论了finally块和throws关键字的使用场景。我们将了解如何在Java程序中有效地管理错误,提高代码的健壮性和可维护性。 ####
|
8天前
|
存储 运维 Java
💻Java零基础:深入了解Java内存机制
【10月更文挑战第18天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
21 1
|
9天前
|
存储 安全 Java
如何避免 Java 中的“ArrayStoreException”异常
在Java中,ArrayStoreException异常通常发生在尝试将不兼容的对象存储到泛型数组中时。为了避免这种异常,确保在操作数组时遵循以下几点:1. 使用泛型确保类型安全;2. 避免生类型(raw types)的使用;3. 在添加元素前进行类型检查。通过这些方法,可以有效防止 ArrayStoreException 的发生。
|
2天前
|
Java 开发者
深入理解Java异常处理机制
【10月更文挑战第29天】在Java的世界中,异常处理如同生活的调味品,不可或缺。它确保了程序在遇到错误时不会崩溃,而是优雅地继续运行或者给出提示。本文将带你领略异常处理的奥秘,从基础的try-catch语句到高级的自定义异常,让你在面对程序中的各种“意外”时,能够从容应对。
|
4天前
|
SQL Java
探索Java中的异常处理机制
【10月更文挑战第26天】 在本文中,我们将深入探讨Java编程语言的异常处理机制。通过分析不同类型的异常、异常的捕获与抛出方式,以及如何自定义异常类,读者将能够更好地理解并应用Java中的异常处理机制来提高代码的健壮性和可读性。
12 0