微餐饮网站建设官网张掖建设局网站

张小明 2025/12/31 23:43:42
微餐饮网站建设官网,张掖建设局网站,广东省备案网站建设方案书,网站开发需要人员Java 异常处理 异常是程序中的一些错误#xff0c;但并不是所有的错误都是异常#xff0c;并且错误有时候是可以避免的。 比如说#xff0c;你的代码少了一个分号#xff0c;那么运行出来结果是提示是错误 java.lang.Error#xff1b;如果你用System.out.println(11/0)但并不是所有的错误都是异常并且错误有时候是可以避免的。比如说你的代码少了一个分号那么运行出来结果是提示是错误 java.lang.Error如果你用System.out.println(11/0)那么你是因为你用0做了除数会抛出 java.lang.ArithmeticException 的异常。异常发生的原因有很多通常包含以下几大类用户输入了非法数据。要打开的文件不存在。网络通信时连接中断或者JVM内存溢出。这些异常有的是因为用户错误引起有的是程序错误引起的还有其它一些是因为物理错误引起的。-要理解Java异常处理是如何工作的你需要掌握以下三种类型的异常检查性异常最具代表的检查性异常是用户错误或问题引起的异常这是程序员无法预见的。例如要打开一个不存在文件时一个异常就发生了这些异常在编译时不能被简单地忽略。运行时异常 运行时异常是可能被程序员避免的异常。与检查性异常相反运行时异常可以在编译时被忽略。错误 错误不是异常而是脱离程序员控制的问题。错误在代码中通常被忽略。例如当栈溢出时一个错误就发生了它们在编译也检查不到的。Exception 类的层次所有的异常类是从 java.lang.Exception 类继承的子类。Exception 类是 Throwable 类的子类。除了Exception类外Throwable还有一个子类Error 。Java 程序通常不捕获错误。错误一般发生在严重故障时它们在Java程序处理的范畴之外。Error 用来指示运行时环境发生的错误。例如JVM 内存溢出。一般地程序不会从错误中恢复。异常类有两个主要的子类IOException 类和 RuntimeException 类。在 Java 内置类中(接下来会说明)有大部分常用检查性和非检查性异常。Java 内置异常类Java 语言定义了一些异常类在 java.lang 标准包中。标准运行时异常类的子类是最常见的异常类。由于 java.lang 包是默认加载到所有的 Java 程序的所以大部分从运行时异常类继承而来的异常都可以直接使用。Java 根据各个类库也定义了一些其他的异常下面的表中列出了 Java 的非检查性异常。异常描述ArithmeticException当出现异常的运算条件时抛出此异常。例如一个整数除以零时抛出此类的一个实例。ArrayIndexOutOfBoundsException用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小则该索引为非法索引。ArrayStoreException试图将错误类型的对象存储到一个对象数组时抛出的异常。ClassCastException当试图将对象强制转换为不是实例的子类时抛出该异常。IllegalArgumentException抛出的异常表明向方法传递了一个不合法或不正确的参数。IllegalMonitorStateException抛出的异常表明某一线程已经试图等待对象的监视器或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程。IllegalStateException在非法或不适当的时间调用方法时产生的信号。换句话说即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下。IllegalThreadStateException线程没有处于请求操作所要求的适当状态时抛出的异常。IndexOutOfBoundsException指示某排序索引例如对数组、字符串或向量的排序超出范围时抛出。NegativeArraySizeException如果应用程序试图创建大小为负的数组则抛出该异常。NullPointerException当应用程序试图在需要对象的地方使用null时抛出该异常NumberFormatException当应用程序试图将字符串转换成一种数值类型但该字符串不能转换为适当格式时抛出该异常。SecurityException由安全管理器抛出的异常指示存在安全侵犯。StringIndexOutOfBoundsException此异常由String方法抛出指示索引或者为负或者超出字符串的大小。UnsupportedOperationException当不支持请求的操作时抛出该异常。下面的表中列出了 Java 定义在 java.lang 包中的检查性异常类。异常描述ClassNotFoundException应用程序试图加载类时找不到相应的类抛出该异常。CloneNotSupportedException当调用Object类中的clone方法克隆对象但该对象的类无法实现Cloneable接口时抛出该异常。IllegalAccessException拒绝访问一个类的时候抛出该异常。InstantiationException当试图使用Class类中的newInstance方法创建一个类的实例而指定的类对象因为是一个接口或是一个抽象类而无法实例化时抛出该异常。InterruptedException一个线程被另一个线程中断抛出该异常。NoSuchFieldException请求的变量不存在NoSuchMethodException请求的方法不存在异常方法下面的列表是 Throwable 类的主要方法:序号方法及说明1public String getMessage()返回关于发生的异常的详细信息。这个消息在Throwable 类的构造函数中初始化了。2public Throwable getCause()返回一个Throwable 对象代表异常原因。3public String toString()使用getMessage()的结果返回类的串级名字。4public void printStackTrace()打印toString()结果和栈层次到System.err即错误输出流。5public StackTraceElement [] getStackTrace()返回一个包含堆栈层次的数组。下标为0的元素代表栈顶最后一个元素代表方法调用堆栈的栈底。6public Throwable fillInStackTrace()用当前的调用栈层次填充Throwable 对象栈层次添加到栈层次任何先前信息中。捕获异常使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方。try/catch代码块中的代码称为保护代码使用 try/catch 的语法如下try { // 程序代码 }catch(ExceptionName e1) { //Catch 块 }Catch 语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时try 后面的 catch 块就会被检查。如果发生的异常包含在 catch 块中异常会被传递到该 catch 块这和传递一个参数到方法是一样。实例下面的例子中声明有两个元素的一个数组当代码试图访问数组的第三个元素的时候就会抛出一个异常。ExcepTest.java 文件代码// 文件名 : ExcepTest.javaimport java.io.*;public class ExcepTest{ public static void main(String args[]){ try{ int a[] new int[2]; System.out.println(“Access element three :” a[3]); }catch(ArrayIndexOutOfBoundsException e){ System.out.println(“Exception thrown :” e); } System.out.println(“Out of the block”); }}以上代码编译运行输出结果如下Exception thrown :java.lang.ArrayIndexOutOfBoundsException: 3 Out of the block多重捕获块一个 try 代码块后面跟随多个 catch 代码块的情况就叫多重捕获。多重捕获块的语法如下所示try{ // 程序代码}catch(异常类型1 异常的变量名1){ // 程序代码}catch(异常类型2 异常的变量名2){ // 程序代码}catch(异常类型2 异常的变量名2){ // 程序代码}上面的代码段包含了 3 个 catch块。可以在 try 语句后面添加任意数量的 catch 块。如果保护代码中发生异常异常被抛给第一个 catch 块。如果抛出异常的数据类型与 ExceptionType1 匹配它在这里就会被捕获。如果不匹配它会被传递给第二个 catch 块。如此直到异常被捕获或者通过所有的 catch 块。实例该实例展示了怎么使用多重 try/catch。try{ file new FileInputStream(fileName); x (byte) file.read();}catch(IOException i){ i.printStackTrace(); return -1;}catch(FileNotFoundException f) //Not valid!{ f.printStackTrace(); return -1;}throws/throw 关键字如果一个方法没有捕获一个检查性异常那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。也可以使用 throw 关键字抛出一个异常无论它是新实例化的还是刚捕获到的。下面方法的声明抛出一个 RemoteException 异常import java.io.*;public class className{ public void deposit(double amount) throws RemoteException { // Method implementation throw new RemoteException(); } //Remainder of class definition}一个方法可以声明抛出多个异常多个异常之间用逗号隔开。例如下面的方法声明抛出 RemoteException 和 InsufficientFundsExceptionimport java.io.*;public class className{ public void withdraw(double amount) throws RemoteException, InsufficientFundsException { // Method implementation } //Remainder of class definition}finally关键字finally 关键字用来创建在 try 代码块后面执行的代码块。无论是否发生异常finally 代码块中的代码总会被执行。在 finally 代码块中可以运行清理类型等收尾善后性质的语句。finally 代码块出现在 catch 代码块最后语法如下try{ // 程序代码}catch(异常类型1 异常的变量名1){ // 程序代码}catch(异常类型2 异常的变量名2){ // 程序代码}finally{ // 程序代码}实例ExcepTest.java 文件代码public class ExcepTest{ public static void main(String args[]){ int a[] new int[2]; try{ System.out.println(“Access element three :” a[3]); }catch(ArrayIndexOutOfBoundsException e){ System.out.println(“Exception thrown :” e); } finally{ a[0] 6; System.out.println(First element value: a[0]); System.out.println(“The finally statement is executed”); } }}以上实例编译运行结果如下Exception thrown :java.lang.ArrayIndexOutOfBoundsException: 3 First element value: 6 The finally statement is executed注意下面事项catch 不能独立于 try 存在。在 try/catch 后面添加 finally 块并非强制性要求的。try 代码后不能既没 catch 块也没 finally 块。try, catch, finally 块之间不能添加任何代码。声明自定义异常在 Java 中你可以自定义异常。编写自己的异常类时需要记住下面的几点。所有异常都必须是 Throwable 的子类。如果希望写一个检查性异常类则需要继承 Exception 类。如果你想写一个运行时异常类那么需要继承 RuntimeException 类。可以像下面这样定义自己的异常类class MyException extends Exception{}只继承Exception 类来创建的异常类是检查性异常类。下面的 InsufficientFundsException 类是用户定义的异常类它继承自 Exception。一个异常类和其它任何类一样包含有变量和方法。实例InsufficientFundsException.java 文件代码// 文件名InsufficientFundsException.javaimport java.io.*; public class InsufficientFundsException extends Exception{ private double amount; public InsufficientFundsException(double amount) { this.amount amount; } public double getAmount() { return amount; }}为了展示如何使用我们自定义的异常类在下面的 CheckingAccount 类中包含一个 withdraw() 方法抛出一个 InsufficientFundsException 异常。CheckingAccount.java 文件代码// 文件名称 CheckingAccount.javaimport java.io.*; public class CheckingAccount{ private double balance; private int number; public CheckingAccount(int number) { this.number number; } public void deposit(double amount) { balance amount; } public void withdraw(double amount) throws InsufficientFundsException { if(amount balance) { balance - amount; } else { double needs amount - balance; throw new InsufficientFundsException(needs); } } public double getBalance() { return balance; } public int getNumber() { return number; }}下面的 BankDemo 程序示范了如何调用 CheckingAccount 类的 deposit() 和 withdraw() 方法。BankDemo.java 文件代码//文件名称 BankDemo.javapublic class BankDemo{ public static void main(String [] args) { CheckingAccount c new CheckingAccount(101); System.out.println(“Depositing $500…”); c.deposit(500.00); try { System.out.println(“\nWithdrawing $100…”); c.withdraw(100.00); System.out.println(“\nWithdrawing $600…”); c.withdraw(600.00); }catch(InsufficientFundsException e) { System.out.println(“Sorry, but you are short $” e.getAmount()); e.printStackTrace(); } }}编译上面三个文件并运行程序 BankDemo得到结果如下所示Depositing $500... Withdrawing $100... Withdrawing $600... Sorry, but you are short $200.0 InsufficientFundsException at CheckingAccount.withdraw(CheckingAccount.java:25) at BankDemo.main(BankDemo.java:13)通用异常在Java中定义了两种类型的异常和错误。JVM(Java虚拟机) 异常由 JVM 抛出的异常或错误。例如NullPointerException 类ArrayIndexOutOfBoundsException 类ClassCastException 类。程序级异常由程序或者API程序抛出的异常。例如 IllegalArgumentException 类IllegalStateException 类。根据最近的行业调研和招聘数据AI的发展确实对Java工程师提出了新挑战但也带来了明确的转型机遇。其现状可概括为市场分化明显初级岗位收缩但“JavaAI”的复合型人才需求正在崛起。️ 给Java工程师的转型行动建议转变核心角色定位目标应从“业务代码实现者”转向 “智能系统构建者” 或 “AI与业务的中枢架构师” 。这意味着你的核心价值在于设计能容纳AI能力的系统、确保其稳定高效运行并深刻理解业务以找到AI的最佳落地场景构建“Java AI”双技能栈巩固Java深度深入JVM性能调优、分布式系统设计这是你区别于纯AI算法工程师的基石。学习AI应用层技术不必从零开始研究算法。优先学习如何使用AI工具和框架例如Prompt Engineering提示词工程高效驱动大模型的关键技能。AI应用框架学习 LangChain4J、Spring AI 等掌握在Java中集成和调度AI模型的方法。向量数据库了解Milvus等这是构建AI语义搜索、推荐系统的基础。从“用AI辅助编程”开始实践立即在日常工作中使用GitHub Copilot等工具亲身体验其如何改变工作流。同时警惕过度依赖将节约出的时间用于更高层的设计和优化工作。选择垂直领域深耕将你的Java经验与某个行业如金融、医疗、工业物联网结合成为既懂行业业务又懂AI落地解决方案的专家这会形成强大的竞争壁垒。因此捕获AI掌握技术是关键让AI成为我们最便利的工具.一定要把现有的技术和大模型结合起来而不是抛弃你们现有技术掌握AI能力的Java工程师比纯Java岗要吃香的多。即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇如何学习AGI大模型作为一名热心肠的互联网老兵我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。因篇幅有限仅展示部分资料需要点击下方链接即可前往获取2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享**一、2025最新大模型学习路线一个明确的学习路线可以帮助新人了解从哪里开始按照什么顺序学习以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛没有明确的学习路线可能会导致新人感到迷茫不知道应该专注于哪些内容。我们把学习路线分成L1到L4四个阶段一步步带你从入门到进阶从理论到实战。L1级别:AI大模型时代的华丽登场L1阶段我们会去了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理关键技术以及大模型应用场景通过理论原理结合多个项目实战从提示工程基础到提示工程进阶掌握Prompt提示工程。L2级别AI大模型RAG应用开发工程L2阶段是我们的AI大模型RAG应用开发工程我们会去学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3级别大模型Agent应用架构进阶实践L3阶段大模型Agent应用架构进阶实现我们会去学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造我们自己的Agent智能体同时还可以学习到包括Coze、Dify在内的可视化工具的使用。L4级别大模型微调与私有化部署L4阶段大模型的微调和私有化部署我们会更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握而L3 L4更多的是通过项目实战来掌握大模型的应用开发针对以上大模型的学习路线我们也整理了对应的学习视频教程和配套的学习资料。二、大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF三、大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。四、大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。五、大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。因篇幅有限仅展示部分资料需要点击下方链接即可前往获取2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

公司网站文案推广怎么做上海网站建设目的

Kotaemon如何处理模糊查询与歧义消除? 在企业级智能对话系统中,用户的问题往往不是教科书式的标准问法。他们更倾向于用“那个功能上线了吗?”、“最近的数据怎么样?”这样的口语化表达来提问。这些看似简单的句子背后&#xff0…

张小明 2025/12/31 23:43:12 网站建设

廊坊 网站电商怎么做数据分析

TsubakiTranslator:免费实时游戏翻译工具,轻松畅玩原版日文游戏 【免费下载链接】TsubakiTranslator 一款Galgame文本翻译工具,支持Textractor/剪切板/OCR翻译 项目地址: https://gitcode.com/gh_mirrors/ts/TsubakiTranslator 还在为…

张小明 2025/12/31 23:42:39 网站建设

网站建设 预付款亚马逊网站入口

TensorBoard配色定制全攻略:从彩虹色混乱到专业可视化的完美蜕变 【免费下载链接】tensorboard TensorFlows Visualization Toolkit 项目地址: https://gitcode.com/gh_mirrors/te/tensorboard 你是否曾为TensorBoard中多条训练曲线交织成的"彩虹色乱麻…

张小明 2025/12/31 23:42:07 网站建设

网站建设中图片尺寸小程序建站模板

Go-CQHTTP完整开发手册:构建智能QQ机器人的终极实战指南 【免费下载链接】go-cqhttp cqhttp的golang实现,轻量、原生跨平台. 项目地址: https://gitcode.com/gh_mirrors/go/go-cqhttp Go-CQHTTP作为QQ机器人开发领域的明星项目,以其轻…

张小明 2025/12/31 23:41:03 网站建设

景区网站开发网站建设典型材料

在数字影音播放的世界中,字幕渲染质量直接影响观影的沉浸感和视觉体验。xy-VSFilter作为一款基于libass引擎的专业级字幕渲染过滤器,为Windows平台用户提供了前所未有的ASS/SSA字幕渲染效果。无论您是高要求的影音爱好者还是普通观影用户,这款…

张小明 2025/12/31 23:40:30 网站建设

网页翻译突然不翻译了seo海外推广

目录具体实现截图项目介绍论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持Python(flask,django)、…

张小明 2025/12/31 23:39:58 网站建设