java异常处理

台达伺服B3驱动器参数的设定和CN1的接法 3. B2的电子齿轮比是直接设定P1-44(分子)和P1-45(分母)就就可以的,但是B3的有个隐藏的细节,就是P1-44的默认值77216不用去更改,这是官方客服说的,需要改的是P1-45这个参数,比如说,我使用的丝杆螺距是5mm的,那么就是以5000脉冲走完5mm为一圈,则就把P1-45设定为5000即可;我的是三菱FX3S系列的PLC,是NPN型的,输出点是24V-作为信号的,所以接41、37,具体可参考B3的。,跟着客服的讲解操作才解决的,以下就是解决方法,希望能够帮到需要的各位。 阅读详情

什么是异常?
异常就是表示阻止执行正常进行的错误或者情况

一、 try-catch语句

import java.util.Scanner;

public class Quotient {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
      Scanner input = new Scanner(System.in);
      System.out.println("Enter two integer:");
      int number1 = input.nextInt();
      int number2 = input.nextInt();
      // try在程序正常时运行
      try{
          if (number2 == 0) throw new ArithmeticException("Divisor cannot be zero"); // throw执行时会调用catch
          int result = number1 / number2;
          System.out.println(result);
      }
      // catch 包含在程序异常时产生执行,即number2=0时;
      catch (ArithmeticException ex){
          // catch参数匹配抛出值的类型,这里是ArithmeticException类型
          System.out.println("cannot be divided by zero");
      }
      System.out.println("Execution continues..."); 
    }
}

当输入2,0时,输出Enter two integer:
3
0
cannot be divided by zero
Execution continues...


try块是程序正常运行的情况,catch是在number = 0时,运行的代码;
在try块中,通过条件判断是否直接抛出异常,或者调用一个可能抛出异常的方法throw;
直接抛出异常: throw new ArithmeticException(“Divior cannot be zero”);
异常是通过异常类产生的新的对象,这里,异常类就是 java.lang.ArithmeticException;
当异常抛出后,正常的执行流程就被中断了,异常将被catch捕获,执行catch中的代码段;
在catch块中,catch(ArithmeticException e)
ex为catch块的参数,它的类型是try抛出异常的类型,一旦捕获异常,catch块就能通过ex参数访问抛出的异常值;


二、在try块调用可能产生异常的方法

在自定义方法中产生异常:

import java.util.Scanner;

public class Quotient {

    public static int quotient(int number1, int number2){
         // try在程序正常时运行
              if (number2 == 0) throw new ArithmeticException("Divisor cannot be zero"); // throw执行时会调用catch
              int result = number1 / number2;
              return result;
          }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
      Scanner input = new Scanner(System.in);
      System.out.println("Enter two integer:");
      int number1 = input.nextInt();
      int number2 = input.nextInt();
      try{
      int result = quotient(number1, number2);
      System.out.println(result);
      }
      // catch 包含在程序异常时产生执行,即number2=0时;
      catch (ArithmeticException ex){
          // catch参数匹配抛出值的类型,这里是ArithmeticException类型
          System.out.println("cannot be divided by zero");
      }
      System.out.println("Execution continues..."); 
    }
}

在库方法中抛出异常:

  • FileNotFoundException异常
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FileNotFoundExceptionDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
       Scanner inputFromConsole = new Scanner(System.in);
       System.out.println("enter a file name");
       String fileName = inputFromConsole.nextLine();
       try {
           Scanner inputFromFile = new Scanner(new File(fileName));//如果文件不存在,那么,Scanner会抛出FileNotFundException类型的异常,并且被将会被catch捕获
           System.out.println("File" + fileName + "exists");
       }
       // 捕获FileNotFoundException类型的异常
       catch(FileNotFoundException ex){
           System.out.println("Exception:" + fileName + " not found");
       }
    }
}

输出结果:

// 文件存在,未抛出错误
 enter a file name
/Users/shaojinghong/Desktop/java/日记1.txt
File/Users/shaojinghong/Desktop/java/日记1.txtexists

//文件不存在,抛出错误
enter a file name
/Users/shaojinghong/Desktop/java/日记1
Exception:/Users/shaojinghong/Desktop/java/日记1 not found


- InputMismatchException异常

import java.util.InputMismatchException;
import java.util.Scanner;

public class InputMismatchExceptionDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
      Scanner input = new Scanner(System.in);
      boolean continueInput = true;
      do {
          try{
              System.out.print("Enter an integer");
              int number = input.nextInt();// 如果,输入不是int类型,将抛出异常
              System.out.println("the number entered is a number");
              continueInput = false;
          }
          catch (InputMismatchException ex){
              System.out.println("Incorrect input: an integer is required");
              input.nextLine();//丢弃当前行,用户可以输入新行
          }
      } while (continueInput);  
    }
}


三、异常类型

异常可分为三类

  • 系统错误Error:LinkageError、VirtualMachineError等
    由java虚拟机抛出,用Error表示,发生这种错误时,几乎什么都不做,除了通知用户、尽量稳妥的终止任务;例如,编译前后变得不兼容java虚拟机中断,或者没有继续运行所必须的资源可用

  • 异常 Exception: ClassNotFoundException、IOException
    由程序和外部情况引起,可以被捕获处理;当企图使用一个不存在的类的时候,会抛出ClassNotFoundException;当OI操作时,无效的输入和打开一个不存在的文件、读取超过文件尾部、会抛出IOException,它包的含子类有:InterruptedIOException、EOFException、FileNotFoundException

  • 运行时异常runtime exception:描述的是程序设计的错误,被java虚拟机抛出,例如:错误的类型转换、访问一个越界数组RuntimeException有以下子类:ArithmeticException(一个数除以0)、NullPointerException(企图通过Null访问一个对象)、 IndexOutBoundsException(数组下标超出范围)、IllegalArgumentException(传递参数不合法)

    这里写图片描述



四、免检、必检异常

RuntimeException和Error和它们的子类都是免检异常,
Exception异常是必检异常,意思是编译器会强制程序猿检查并处理异常;
大多数情况下,免检对象反应出程序设计的错误,例如,数组越界,这些都是程序猿必须纠正的语法错误,为了避免过多的使用try-catch语句,java语言不允许编写代码捕获或者声明免检异常



五、深入异常处理的细节

ArcGIS中地理坐标系与投影坐标系以及投影转换 简单介绍arcgis软件中坐标系定义、设置和常见问题。 阅读详情

相关推荐

Proteus仿真实战:用STM32F103C8T6输入捕获模式精准测量PWM频率(附完整代码)

本文详细解析了如何在Proteus仿真环境中,利用STM32F103C8T6的输入捕获模式精准测量PWM频率。文章从输入捕获的工作原理、Proteus电路搭建、模块化代码实现到调试优化,提供了完整的实战指南和代码示例,帮助开发者深入理解并掌握这一关键技术。

weixin_29158047的博客 257

常见的异常与分类

NO.1 Java.alng.NullPointerException 这个异常大家肯定都经常遇到,异常的解释是 “程序遇上了空指针 “,简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化, 依然是空的,所以.

WRY的博客 777

【OpenCV】复杂场景下的高精度圆检测实战(附完整代码)

本文针对OpenCV霍夫圆检测在复杂场景下易失效的问题,提出了一套基于轮廓分析的高精度圆检测实战方案。通过图像预处理、轮廓发现及多轮几何筛选(面积、周长、椭圆拟合、多边形逼近),有效排除噪声和类圆干扰物,显著提升复杂场景下的检测鲁棒性,并附完整可调参的Python代码实现。

weixin_29095587的博客 200

java异常_Java程序员必备:异常的十个关键知识点

前言总结了Java异常十个关键知识点,面试或者工作中都有用哦,加油。一. 异常是什么异常是指阻止当前方法或作用域继续执行的问题。比如你读取的文件不存在,数组越界,进行除法时,除数为0等都会导致异常。一个文件找不到的异常:public class TestException { public static void main(String[] args) throws IOExcep...

weixin_39781186的博客 378

HITS算法详解及代码实现

占坑

蓁蓁尔的博客 7462

EMC系列EtherCAT总线运动控制器(二):Motion通讯连接、总线配置及诊断

雷赛-EMC系列EtherCAT总线运动控制器(二):Motion通讯连接、总线配置及诊断

weixin_38570076的博客 1887

java异常类型及异常处理

异常分为两大类型必检异常和免检异常(RuntimeException。必检异常是指编译器会强制程序员检查并通过try-catch块处理,或者在方法头声明的异常。两者也可同时出现。 public method1() throws IOException{ //方法头声明异常类 statement1; } public method2() { try{ } catch(Excetion1 ex1){ //声明要捕获的异常类 } stat...

G0208的博客 1429

用AI科研绘图全新升级!借助谷歌新发布模型Nano Banana pro实测一键绘制机制图与技术路线图,直接告别文字乱码与低画质

之前有同仁反馈,用Nano Banana画科研插图的时候,要么文字部分容易乱码,要么抓不住关键内容,画出来的效果反复修改后,还是达不到理想的效果。终于在Gemini 3发布没几天,万众期待的大香蕉模型也成功升级到了Pro版本,官方名称叫“Gemini 3 Pro Image”,实际上也就是我们说的Nano Banana 2。这次的Nano Banana Pro模型,不仅可以直出4K高清图,还能自定义比例,推理能力和中文文字的稳定性也得到了提升。

智能AI让学术科研更容易 1889

java 常用异常及作用

先看看图, Exception就明白了      关于异常 大体分为 不可查异常 可查异常 runtimeException三类~异常都继承throwable这个类~ 下面有error和Exception两大类~ 不可查异常 为 error : 是由于系统错误`是无法恢复的`比如~你没显卡`怎么显示图像!是无法恢复的 ~Exception 下为 可查异常和runtimeEx...

dibengshao7358的博客 591

2025年华为杯D题:低空湍流监测及最优航路规划思路与Matlab实现

2025年华为杯D题:低空湍流监测及最优航路规划思路与Matlab实现

前程算法屋的博客 772

AgentScope Java 2.0 项目实战: 从零构建自己的个人AI助手“小龙虾“

本文系统介绍如何基于Spring Boot WebFlux、React 18和TypeScript,从零搭建一个本地化的个人AI助手管理平台——AgentScope Paw。项目支持多Agent创建与管理、SSE流式对话、工作区文件CRUD、技能市场、子智能体孵化、AI辅助起草Agent配置等核心功能,并深度集成钉钉、企业微信、飞书、GitHub等IM通道。

program哲学 1427

异常

1, 异常分为免检异常和必检异常。免检异常包括RuntimeException、Error 以及它们的子类。其他的异常都称为必检异常,编译器会强制程序员检查并通过try-catch块处理他们或者在方法头声明 2,必检异常的处理方法 第一种 void p1() { try{ }catch(IOException ex){ } }//捕获异常 第二种 void p1() throws IOException {//声明异常 p2(); throw new IOException(); //抛出异常 }

weixin_45583482的博客 1761

【OpenClaw从入门到精通】第17篇:OpenClaw巨头布局实战:阿里CoPaw/腾讯云/百度/火山引擎深度拆解(2026实操版)

2026年OpenClaw以22.8万星标登顶GitHub,引发阿里、腾讯、百度、字节等互联网巨头入局角逐。本文基于公开技术文档与实测经验,深度解析四大巨头的OpenClaw布局战略:阿里云CoPaw的全栈托管、腾讯云的流量入口绑定、百度智能云的搜索生态内嵌、火山引擎的极致智力供给。从核心原理、算法构建、实操流程三个维度,提供可直接落地的接入方案,包含完整代码示例与执行结果验证。通过流程图可视化核心架构,搭配避坑指南与选型矩阵,帮助新手快速上手、进阶读者实现多厂商协同部署。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1683

Java异常处理

/ 支付异常(继承RuntimeException)// 异常附加信息异常处理核心要点理解异常分类:明确Error/Checked/Unchecked的区别选择合适的异常类型:业务异常优先使用RuntimeException保持异常信息完整:包含业务上下文和原始异常全局异常处理:统一REST API错误格式性能优化方向避免在循环内部抛出异常高频调用路径禁用异常控制流使用预检查替代异常捕获:// 优化前try {// 处理越界// 优化后} else {

weixin_44343004的博客 1068

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java异常处理终结篇——如何进行Java异常处理设计

使用Java异常的人很多,但能合理使用的却不多,Java异常处理设计是一个冷门的话题,但好的异常设计会让程序有质的变化,所以本文从各个方面分析便总结了,在Java程序中,如何进行异常设计。

登高而望远 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【Java】—— Java异常处理 总结

1. 什么是异常?指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止。​2. 异常的抛出机制Java中把不同的异常用不同的类表示,一旦发生某种异常,就`创建该异常类型的对象`,并且抛出(throw)。然后程序员可以捕获(catch)到这个异常对象,并处理;如果没有捕获(catch)这个异常对象,那么这个异常对象将会导致程序终止。​3. 如何对待异常对于程序出现的异常,一般有两种解决方法:一是遇到错误就终止程序的运行。另一种方法是程序员在编写程序时,

weixin_63106307的博客 1166

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java异常处理底层_Java异常处理机制

什么是异常?异常本质上是程序上的错误,错误在我们编写程序的过程中会经常发生,包括编译期间和运行期间的错误。编译期间的错误通常是基础的语法错误,比如括号没有正常配对、语句结束后少写了分号,关键字编写错误等,编译器会对这些错误给出提示,帮助我们进行修订。运行期间的错误只有程序运行时才能看到错误的提示,比如数组访问时下标越界、使用空对象调用方法、算术运算时除数为0、类型转换时无法正常转型等,运行期间的错...

weixin_29471541的博客 779

【 java 异常处理】一文速通 java 异常处理

在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等。因此异常处理就显得十分重要!

阿牛的博客 959

Java 异常处理

在 Java 中你可以自定义异常。编写自己的异常类时需要记住下面的几点。所有异常都必须是 Throwable 的子类。如果希望写一个检查性异常类,则需要继承 Exception 类。如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。可以像下面这样定义自己的异常类:只继承Exception 类来创建的异常类是检查性异常类。下面的 InsufficientFundsException 类是用户定义的异常类,它继承自 Exception。

qq_25502783的博客 659

java分层异常处理_Java异常处理总结

1 异常处理的重要性对于一个应用系统,设计一套良好的异常处理体系是很重要的,因为它对于程序的后期维护有十分重要的意义。应用系统的异常处理体系或者说框架,应该在系统设计初期的时候就考虑清楚,这样可以避免开发阶段由于异常处理体系的混乱而引起的不必要的重构工作。2 Java异常体系从类图中可以看出java异常的类继承关系,Throwable是所有异常和错误的父类。它的两个子类Error和Exceptio...

weixin_42514783的博客 495

Java异常处理机制

作者:小符 撰写时间:2018.4.24 学会了异常处理可以帮助你去掉一些在代码中不必要的麻烦,可以在发生错误时,抛出错误,让你的程序减少奔溃的几率。当发生错误时,可以在短时间内找到错误所在行,会节省很多时间,让程序更加健壮。 Java异常处理机制为:抛出异常,捕捉异常,处理异常。 语法格式: try…catch 在使用try…catch捕获处理异常时需要注意: **·**不要过度使用异常,不能使...

白夜光的博客 3894

Java的异常处理机制

一、什么是java异常? java异常指在程序运行时可能出现的一些错误,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,中断了正在执行的程序的正常指令流。Java通过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的错误条件。当条件生成时,错误将引发异常。 Java异常类...

BoSea 5万+

java 异常处理总结

征文 | 从高考,到程序员    深度学习与TensorFlow入门一课搞定!    每周荐书 | Web扫描、HTML 5、Python(评论送书) java 异常处理总结 标签: 异常处理java 2016-09-22 10:30 80人阅读 评论(0) 收藏 举报 本文章已收录于: 版权声明:本文为博主原创文章,未经博

qq_36638469的博客 539

java异常处理的实例_Java异常处理十个案例

异常处理是Java 开发中的一个重要部分。它是关乎每个应用的一个非功能性需求,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等。Java提供了几个异常处理特性,以try,catch 和 finally 关键字的形式内建于语言自身之中。Java 编程语言也允许你创建新的异常,并通过使用 throw 和 throws关键字抛出它们。事实上,在Java编程中,Java的异常处理不单单是知道...

weixin_32199769的博客 1607

java中异常处理

Java异常处理摘要 Java异常处理机制用于处理程序执行过程中的非正常情况。异常分为Error和Exception两大类:Error是JVM无法处理的严重问题,Exception则是可以通过代码处理的普通异常。异常处理方式包括try-catch-finally捕获处理和throws声明抛出两种。 关键点: try-catch-finally适合处理方法内部异常,尤其涉及资源操作时 throws适用于方法间递进调用的异常传递 可手动抛出异常(throw)或自定义异常类 方法重写时子类异常类型不能超过父类范围

2301_80637326的博客 902
上一篇: 多态
下一篇: 记录前端面试
景洪在编程
博客等级 码龄9年 13粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值