365不让提款-日博365bet体育在线-网上365体育买球波胆提现

深度阅读体验

网上365体育买球波胆提现

java-异常类(适合小白)

java-异常类(适合小白) 🏠 把 Java 程 序比作一栋房子:1 1.错误(Error)2 异常(Exception)3 自定义异常:4 运行时异常:5编译时异常:6 异常处理常用的方

java-异常类(适合小白)

java-异常类(适合小白)

🏠 把 Java 程 序比作一栋房子:1

1.错误(Error)2

异常(Exception)3

自定义异常:4

运行时异常:5编译时异常:6 异常处理常用的方式:7

@方法一:8@方法二:9@方法三:10 🔧 处理方式:11

📝 总结:12

让我用生动的比喻来解释 Java 中的错误(Error)和异常(Exception)的区别:

🏠 把 Java 程序比作一栋房子:

什么是Throwable?

Throwable 类是 Java 语言中所有错误或异常的超类,是对所有异常进行整合的一个普通类。它的作用就是能够提取保存在堆栈中的错误信息。

​ ​

1.错误(Error)

就像房子的地基出现严重问题或遭遇地震是致命的、不可恢复的灾难性问题例如:OutOfMemoryError:就像房子的承重墙突然倒塌StackOverflowError:就像楼层无限堆叠直到崩塌

2. 异常(Exception)

就像房子日常使用中遇到的各种小问题

是可以处理和修复的问题

分两种类型:

检查异常(Checked Exception)

像是预约水管工来修理漏水必须提前计划如何处理例如:FileNotFoundException(找不到文件) 非检查异常(Unchecked Exception)

像是不小心把花瓶打碎是程序运行时突发的意外例如:NullPointerException(空指针异常)

那么接下来再来理解这两句定义就会容易:

异常是指程序在编译或者运行时出现的某种异常问题,我们可以对异常进行某种处理,如果不处理异常的话,程序将会停止运行。错误是指程序在运行时出现的严重问题,无法处理,程序将会停止运行,Error通常都是系统级别的问题,都是虚拟机jvm所在系统发生的,只能通过修改源代码解决问题。

自定义异常:

java无法为世界上所有的问题都提供异常类来代表,如果企业自己的某种问题,就需要自定义异常来管理问题。

运行时异常:

定义一个异常类继承RuntimeException重写构造器通过throw new 异常类(xxx)来创建异常对象并抛出编译阶段不报错,提醒不强烈,运行时才可能出现!!

常见的运行时异常:

数组越界异常:ArrayIndexOutofBoundsException。空指针异常:NullPointerException类型转换异常:ClassCastException迭代器遍历没有此元素异常:NoSuchElementException数学操作异常:ArithemeticException.数字转换异常:NumberFormatException.

编译时异常:

定义一个异常类继承Exception重写构造器通过throw new 异常类(xxx)来创建异常对象并抛出编译阶段就报错,提醒更加强烈!!

例子:

自定义编译时异常类:

public class IntegerException extends Exception {

String message;

public IntegerException(int m) {

message="年龄"+m+"不合理";

}

public String toString() {

return message;

}

}

注意:

throws 用在方法上,抛出方法内部的异常给上一级,运行时异常是自动抛出的,不用手动抛出

public void readFile() throws IOException {

// 可能会抛出IOException的代码

}

throw 抛出这个异常对象

public void checkAge(int age) {

if (age < 0) {

throw new IllegalArgumentException("年龄不能为负数");

}

}

throw和throws的区别:

throw关键字通常用于手动抛出异常,而throws关键字通常用于声明方法可能抛出的异常。throw关键字只能抛出一个异常对象,而throws关键字可以同时指定多个异常。throw关键字会中断当前的执行流程,寻找合适的异常处理机制,而throws关键字将异常传递给调用者来处理。

异常处理常用的方式:

这里需要先了解捕获异常的语法:

捕获异常:Java中对异常有针对性的语句进行捕获,可以对出现的异常进行指定方式的处理

语句格式:

try {

//需要被检测的语句。

}

catch(异常类1 变量) { //参数。

//异常的处理语句。

}

catch(异常类2 变量) { //参数。

//异常的处理语句。

}

finally {

//一定会被执行的语句。

}

方法一:

捕获异常,记录异常并响应给用户

举例:

public class Exception {

public static void main(String[] args) {

try {

test1();

}catch (FileNotFoundException e){

System.out.println("文件不存在");

e.printStackTrace();

}catch (ParseException e){

System.out.println("日期格式错误");

e.printStackTrace();

}

}

public static void test1() throws ParseException, FileNotFoundException {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date d = sdf.parse("2024-11-17 10:00");

System.out.println(d);

test2();

}

public static void test2() throws FileNotFoundException {

//读取文件错误

InputStream is = new FileInputStream("D:meinv.jpg");

}

}

逻辑图看这个: 执行逻辑,小白要着重搞懂逻辑顺序,很重要

方法二:

捕获异常,并尝试修复

public class Exception_Test2 {

public static void main(String[] args) {

// 需求:调用一个方法,让用户输入一个合适的价格返回为止

// 尝试修复

while (true) {

try {

System.out.println(getPrice());

break;

} catch (Exception e) {

System.out.println("请您输入合适的数字!");

}

}

}

public static double getPrice() {

Scanner scanner = new Scanner(System.in);

while (true) {

System.out.println("请输入一个合适的价格:");

double price = scanner.nextDouble();//不能识别字符串

if (price > 0) {

return price;

} else {

System.out.println("价格不合适");

}

}

}

}

逻辑图:

方法三:

Throws异常处理方法: 在开发中,有的时候我们没有权限处理该异常,我们不知道该如何处理异常,或者不想处理异常,这种情况下我们可以将异常抛出,抛出给调用者JVM处理

throws处理异常的格式:

[访问权限修饰符] 返回值类型 方法名(参数列表) [throws 异常类名]{

方法体;

[return 返回值];

}

注意事项:

可以一直向上一级抛出异常,但是不建议抛出给JVM,因为那样程序会终止。

🔧 处理方式:

错误:需要关闭程序,就像严重地震后必须疏散房屋异常:可以通过 try-catch 处理,就像及时修理房屋中的小问题

📝 总结:

错误:严重事故 → 无法恢复 → 必须停止程序异常:小问题 → 可以修复 → 程序可以继续运行

🏠 把 Java 程序比作一栋房子: ↩︎1.错误(Error) ↩︎2. 异常(Exception) ↩︎自定义异常: ↩︎运行时异常: ↩︎编译时异常: ↩︎异常处理常用的方式: ↩︎方法一: ↩︎方法二: ↩︎方法三: ↩︎🔧 处理方式: ↩︎📝 总结: ↩︎

相关阅读

日博365bet体育在线 取现需要多少手续费?

取现需要多少手续费?

您可以使用 Wise 借记卡在世界各地的 ATM 取款,就像使用其他银行卡一样。 您支付的具体费用取决于卡片发行地,通常是您 Wise 账户上的注册地

365不让提款 昨晚,世界杯历史单场最长跑动距离诞生

昨晚,世界杯历史单场最长跑动距离诞生

北京时间12月6日,世界杯1/8决赛,克罗地亚点球大战淘汰日本队。在比赛中,克罗地亚球员布罗佐维奇创下世界杯新的跑动距离纪录。 布罗佐维