【Java】异常和Lambda表达式

简介: 【Java】异常和Lambda表达式

@TOC


前言

本篇文章介绍了异常和Lambda表达式
Lambda表达式,可以避免匿名类太多,使用也方便。
异常是在程序的运行过程中所发生的异常事件,这些异常事件都属于不正常现象,他中断指令的正常执行。


一、异常

关键字:try(监控区域),catch(捕获异常)、finally(处理一些善后的工作),throw,throws(抛出异常)。
最主要的用法:

try{            //监控区域
 
    可能发生异常的一条或者多条语句
}catch(异常名 参数名){
 
    异常处理语句
}finally{       //无论有无异常,finally语句一定会执行的
    最后异常处理语句
}

一个例子:

int a=7,b=0;
int sum;
try{
    sum=a/b;  //监控
}catch (ArithmeticException e)
{
            //如果监控区域出现异常,则捕获异常
  System.out.println("捕获"+e);//捕获异常
}finally {
  System.out.println("哈哈,我运行了");//善后工作,关闭操作
}

其中finally可以省略

try{
 
}catch(){
 
}
 
 
 
 
try{
 
}catch(){
 
 
}catch(){
 
 
}
...
finally{//可以省略
 
 
}

当出现多个catch时一定要满足异常的范围从小到大,在上面的异常范围最小
throws语句

    如果方法内生成一个异常,但无法确定如何处理此异常,如“找不到文件”等异常,必须将异常传送给调用方法,由他的调用方法来处理,这种情况下,方法应该用声明异常抛出,让异常对象可以从调用栈处向后传递,知道有相应的办法捕获它为止。(也就是我现在不处理这个异常,如果有人用这个方法,那你处理异常)

举个栗子:

public class lizi{
 
    public void imlizi() throws ArithmeticException{
 
        System.out.println("我是例子");
    }
}

imlizi这个方法抛出了异常,所以调用这个方法的使用就需要用try...catch语句来捕获异常

throw语句

在程序运行期间可以直接使用throw手工的抛出一个异常类的实例化对象。

二、Lambda表达式

匿名内部类

public class Demolambda {
    public static void main(String[] args) {
        iLove love = new iLove() {
            @Override
            public void love() {
                System.out.println("我爱你,是多么痛苦的信仰");
            }
        };
        love.love();
    }
 
}
interface iLove{
    void love();
 
}

简化1

public class Demolambda {
    public static void main(String[] args) {
        iLove love;
        love = ()-> {
                System.out.println("我爱你,是多么痛苦的信仰");
            };
        love.love();
 
    }
 
}
interface iLove{
    void love();
 
}

简化二,去大括号

public class Demolambda {
    public static void main(String[] args) {
        iLove love;
        love = ()-> System.out.println("我爱你,是多么痛苦的信仰");
        love.love();
 
    }
 
}
interface iLove{
    void love();
 
}

有参

public class Demolambda {
    public static void main(String[] args) {
        iLove love;
        love = (int a)-> System.out.println("我爱你,是多么痛苦的信仰"+a);
        love.love(521);
    }
 
}
interface iLove{
    void love(int a);
 
}

有参简化1,去类型

public class Demolambda {
    public static void main(String[] args) {
        iLove love;
        love = ( a)-> System.out.println("我爱你,是多么痛苦的信仰"+a);
        love.love(521);
    }
 
}
interface iLove{
    void love(int a);
 
}

有参简化2,去括号

public class Demolambda {
    public static void main(String[] args) {
        iLove love;
        love = a-> System.out.println("我爱你,是多么痛苦的信仰"+a);
        love.love(521);
    }
 
}
interface iLove{
    void love(int a);
 
}

总结

Lambda表达式注意:

1、如果有多个参数时,括号不能去
       2、参数类型要有都有,要去都去
       3、方法体只有一行代码时,才可以去掉大括号
相关文章
|
1月前
|
Java API 开发者
Java中的Lambda表达式与Stream API的协同作用
在本文中,我们将探讨Java 8引入的Lambda表达式和Stream API如何改变我们处理集合和数组的方式。Lambda表达式提供了一种简洁的方法来表达代码块,而Stream API则允许我们对数据流进行高级操作,如过滤、映射和归约。通过结合使用这两种技术,我们可以以声明式的方式编写更简洁、更易于理解和维护的代码。本文将介绍Lambda表达式和Stream API的基本概念,并通过示例展示它们在实际项目中的应用。
|
2月前
|
Java API 开发者
Java中的Lambda表达式:简洁代码的利器####
本文探讨了Java中Lambda表达式的概念、用途及其在简化代码和提高开发效率方面的显著作用。通过具体实例,展示了Lambda表达式如何在Java 8及更高版本中替代传统的匿名内部类,使代码更加简洁易读。文章还简要介绍了Lambda表达式的语法和常见用法,帮助开发者更好地理解和应用这一强大的工具。 ####
|
2月前
|
并行计算 Java 编译器
深入理解Java中的Lambda表达式
在Java 8中引入的Lambda表达式,不仅简化了代码编写,还提升了代码可读性。本文将带你探索Lambda表达式背后的逻辑与原理,通过实例展示如何高效利用这一特性优化你的程序。
|
2月前
|
搜索推荐 Java API
探索Java中的Lambda表达式
本文将深入探讨Java 8引入的Lambda表达式,这一特性极大地简化了代码编写,提高了程序的可读性。通过实例分析,我们将了解Lambda表达式的基本概念、使用场景以及如何优雅地重构传统代码。文章不仅适合初学者,也能帮助有经验的开发者加深对Lambda表达式的理解。
|
1月前
|
安全 Java API
Java中的Lambda表达式:简化代码的现代魔法
在Java 8的发布中,Lambda表达式的引入无疑是一场编程范式的革命。它不仅让代码变得更加简洁,还使得函数式编程在Java中成为可能。本文将深入探讨Lambda表达式如何改变我们编写和维护Java代码的方式,以及它是如何提升我们编码效率的。
|
2月前
|
安全 Java API
Java中的Lambda表达式与Stream API的高效结合####
探索Java编程中Lambda表达式与Stream API如何携手并进,提升数据处理效率,实现代码简洁性与功能性的双重飞跃。 ####
28 0
|
2月前
|
Java 开发者
探索Java中的Lambda表达式
【10月更文挑战第43天】本文将深入浅出地介绍Java中的Lambda表达式,通过实际代码示例,带领读者理解其背后的原理及应用场景。Lambda表达式不仅简化了代码,还提高了开发效率,是Java开发者必备的技能之一。
Java基础异常-自定义异常
Java基础异常-自定义异常
Java基础异常-自定义异常
|
Java 编译器
Java中的异常(抛出异常、自定义异常等)
Java中的异常(抛出异常、自定义异常等)
325 1
|
Java 程序员 编译器
Java异常——throw、throws及自定义异常
Java异常——throw、throws及自定义异常
135 0