java常见异常机制
lipiwang 2025-05-23 18:24 2 浏览 0 评论
/**
* 异常机制
*/
public class Test01 {
public static void main(String[] args) {
int a = 1/0;
/*
Exception in thread "main" java.lang.ArithmeticException: / by zero
at Test01.main(Test01.java:3)
异常 线程"main" java.lang包中的ArithmeticException算数异常类 异常描述:by 0
在 类Test01的main() Test01.java文件第3行
main方法会创建一个主线程
Process finished with exit code 1
进程已完成 随着退出代码1 代码0是正常退出 代码1是异常退出
Exception异常类 出现异常时会生成对应异常类的对象/抛出异常 并且中止程序
抛出异常由系统创建
*/
try{
int a = 1/0;
}catch (Exception e){
e.printStackTrace();
}
int a = 0;
System.out.println(a);
/*
java.lang.ArithmeticException: / by zero
at Test01.main(Test01.java:15)
0
Process finished with exit code 0
try尝试{}语句块 当出现异常catch抓住异常 (e)用引用变量e指向该异常对象 执行{}语句块 语句块内默认调用异常对象e.printStackTrace()打印stack栈trace跟踪信息
如果没有异常发生会正常执行try内的语句 出现异常会生成异常对象交给catch并执行catch内的语句
之后继续往后执行程序
第一个a在try语句块内声明 出了语句块失效 需要重新声明
将错误代码包在try catch中 运行时遇到异常也会继续完成try catch后面的内容 进程正常退出exit code 0
*/
int b=0;
if (b!=0){
System.out.println(1/b);
}
//通过if判断来规避异常 使程序能继续往下执行
String str = "1";
System.out.println(str.charAt(1));
/*
charAt(index)方法的内容如下
public char charAt(int index) {
if ((index < 0) || (index >= value.length)) {
throw new StringIndexOutOfBoundsException(index);
}
return value[index];
}
返回值为char类型 判断索引index<0或者索引超过/等于字符串的数组的长度 throw抛出 new Exception构造器new一个对象
if(false)返回index位的值
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(String.java:658)
at Test01.main(Test01.java:42)
异常 在线程"main"中 异常对象是
StringIndexOfBoundsException类 对应charAt()方法内的throw new xxxx index out of超过 range范围 :1索引传的参数是1 即str.charAt(1)
在 java.lang包String类charAt方法(String.java文件 :658行) 658行对应throw new
StringIndexOutOfBoundsException(index);
在 Test01.main方法(Test01.java文件:42行)
*/
Object o =null;
System.out.println(o.toString());
/*
Exception in thread "main" java.lang.NullPointerException
at Test01.main(Test01.java:63)
异常对象为
java.lang.NullPointerException类 null空pointer指针 引用变量o为null 找不到o的.toString()方法
*/
}
}
class Equipment{ }
class Computer extends Equipment{}
class Television extends Equipment{}
class cast{
public static void main(String[] args) {
Equipment c = new Computer();
Television t = (Television)c;
/*
Exception in thread "main" java.lang.ClassCastException: Computer cannot be cast to Television
at cast.main(Test01.java:78)
class类cast强制转换exception异常 Computer不能强制转换为Television
*/
if (c instanceof Television){
Television te = (Television) c;
}
//添加判断 c是否Television的实例
int[] array = new int[5];
System.out.println(array[5]);
/*
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at cast.main(Test01.java:90)
ArrayIndexOutOf数组索引超过Bounds界限Exception: 5 这里的5是array[5]的实参5 :冒号后面为异常的描述
*/
File f = new File("C:\\CheckedException.txt");
// "\t\n\r\'\"\\ " 斜杠加字符 escape character转义字符 C:\CheckedException.txt 改成C:/
f.createNewFile();
/*
Unhandled
exception:java.io.IOException 在编译阶段产生的异常 checked exception 还没到run阶段就会报异常
未处理异常 创建文件就会报异常 需要包裹try catch来使用
*/
try {
f.createNewFile();
} catch (IOException e) {
//抛出异常时catch io异常
throw new RuntimeException(e);
//抛出一个新的运行时异常
}
}
}
相关推荐
- httpclient+jsoup实现小说线上采集阅读
-
前言 用过老版本UC看小说的同学都知道,当年版权问题比较松懈,我们可以再UC搜索不同来源的小说,并且阅读,那么它是怎么做的呢?下面让我们自己实现一个小说线上采集阅读。(说明:仅用于技术学习、研究) ...
- Python3+requests+unittest接口自动化测试实战
-
一、Requests介绍RequestsisanelegantandsimpleHTTPlibraryforPython,builtforhumanbeings.翻译过来就是...
- 授权码 + PKCE 模式|OIDC & OAuth2.0 认证协议最佳实践系列【03】
-
在上一篇文章中,我们介绍了OIDC授权码模式,本次我们将重点围绕授权码+PKCE模式(AuthorizationCodeWithPKCE)进行介绍,从而让你的系统快速具备接入用户认...
- JWT 在 Java Web 开发中的奇妙应用
-
JWT在JavaWeb开发中的奇妙应用在当今的互联网世界里,安全始终是一个绕不开的话题。而当我们谈论到Web应用的安全性时,认证和授权绝对是其中的核心部分。说到这,我忍不住要给大家讲个笑话...
- 动手操作:一个 OAuth 2 应用程序(2) - 配置 Keycloak 为授权服务器
-
接上一篇《动手操作:一个OAuth2应用程序(1)-应用程序场景》进行场景分析后,本篇就开始动手实现授权服务器。在本文中,我们将Keycloak配置为系统的授权服务器(图3)。...
- JSON Web Token是什么?
-
JSONWebToken(缩写JWT)是目前最流行的跨域认证解决方案。传统的session认证http协议本身是一种无状态的协议,而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证...
- Keycloak Servlet Filter Adapter使用
-
KeycloakClientAdapters简介Keycloakclientadaptersarelibrariesthatmakeitveryeasytosecurea...
- 使用JWT生成token
-
一、使用JWT进行身份验证1、传统用户身份验证Internet服务无法与用户身份验证分开。一般过程如下:用户向服务器发送用户名和密码。验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中...
- 在word中通过VBA调用百度翻译API在线翻译
-
一天的时间,借助各种AI终于解决了这个问题:在word中通过VBA调用百度翻译API进行在线翻译。给我的word又添加了一项神技。先上代码:Sub宏5()''宏5宏Dimapp...
- API 安全之认证鉴权
-
作者:半天前言API作为企业的重要数字资源,在给企业带来巨大便利的同时也带来了新的安全问题,一旦被攻击可能导致数据泄漏重大安全问题,从而给企业的业务发展带来极大的安全风险。正是在这样的背景下,Ope...
- 用WordPress建站哪些插件会拖慢速度影响排名?
-
你是否发现网站加载总慢半拍,SEO排名死活上不去?八成是插件惹的祸!80%的站长不知道,WordPress插件用错类型或配置不当,分分钟让网站速度暴跌,爬虫抓取效率直接砍半。缓存插件没装对,越用越卡你...
- JavaScript报错了?不要慌!怎么看怎么处理都在这里
-
在开发中,有时,我们花了几个小时写的JS代码,在游览器调试一看,控制台一堆红,瞬间一万头草泥马奔腾而来。至此,本文主要记录JS常见的一些报错类型,以及常见的报错信息,分析其报错原因,并给予处理...
-
- 跨站脚本攻击(四)
-
04XSS漏洞挖掘技巧4.1常见的绕过姿势实际应用中web程序往往会通过一些过滤规则来阻止带有恶意代码的用户输入被显示,但由于HTML语言的松散性和各种标签的不同优先级,使得我们绕过过滤规则成为了可能。4.1.1利用大小写绕过HTML标签...
-
2025-05-24 15:21 lipiwang
- WAF-Bypass之SQL注入绕过思路总结
-
过WAF(针对云WAF)寻找真实IP(源站)绕过如果流量都没有经过WAF,WAF当然无法拦截攻击请求。当前多数云WAF架构,例如百度云加速、阿里云盾等,通过更改DNS解析,把流量引入WAF集群,流量经...
- Springboot之登录模块探索(含Token,验证码,网络安全等知识)
-
简介登录模块很简单,前端发送账号密码的表单,后端接收验证后即可~淦!可是我想多了,于是有了以下几个问题(里面还包含网络安全问题):1.登录时的验证码2.自动登录的实现3.怎么维护前后端登录状态在这和大...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)