-
大纲 异常的概念及分类 Java 异常处理机制 Java 应用与开发 异常处理 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 October 30, 2018 大纲 异常的概念及分类 Java 异常处理机制 学习目标 1. 掌握 Java 异常的概念和分类 2. 深入理解 Java 异常处理机制 大纲 异常的概念及分类 Java 异常处理机制 大纲 异常的概念及分类 异常的概念及分类 Java 异常处理机制 大纲 异常的概念及分类 Java 异常处理机制 C++ 中的异常处理 O 《The C++ Programming Language》 ▶ 一个库的作者可以检测出发生了运行时错误,但一般不知道 怎样去处理它们(因为和用户具体的应用有关); ▶ 另一方面,库的用户知道怎样处理这些错误,但却无法检查 它们何时发生(如果能检测,就可以再用户的代码里处理 了,不用留给库去发现)。 提供异常处理机制的的基本思想 让一个函数在发现了自己无法处理的错误时抛出(throw)一个 异常,然后它的(直接或者间接)调用者能够处理这个问题。 O 《C++ primer》 将问题检测和问题处理相分离。 (Exceptions let us separate problem detection from problem resolution.) 大纲 异常的概念及分类 Java
0 码力 |
33 页 |
626.40 KB
| 1 年前 3
-
Stateful Session,并且,终端可以共享 session 数据。 现在你可以获取一个 Subject 和它们的 Session,真正填充有用的代码如检测其是否被允许做 某些事情如何?比如检查其角色和权限? 我们只能对一个已知用户做这些检测,如上我们获取 Subject 实例表示当前用户,但是当前用 户是认证,嗯,他们是任何人--直到他们至少登录一次,我们现在就做这件事情: Apache currentUser.login(token); } 就是这样,不能再简单了。 但如果登录失败了呢,你可以捕获所有异常然后按你期望的方式去处理: try { currentUser.login( token ); //无异常,说明就是我们想要的! } catch ( UnknownAccountException uae ) { //username lae ) { //账号锁住了,不能登入。给个提示? } ... 更多类型异常 ... } catch ( AuthenticationException ae ) { //未考虑到的问题 - 错误? } 这里有许多不同类别的异常你可以检测到,也可以抛出你自己异常。详见 AuthenticationException JavaDoc 小贴士: 最好的方式
0 码力 |
196 页 |
2.34 MB
| 1 年前 3
-
149 12 异常处理 150 12.1 异常的概念及分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 12.1.1 什么是异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 12.1.2 Java 异常分类 . . 152 12.1.4 常见异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 12.2 Java 异常处理机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 12.2.1 捕获异常 . . . . . . . 156 viii 12.2.3 操纵异常对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 12.2.4 捕获和处理 IOException . . . . . . . . . . . . . . . . . . . . . . . . 158 12.2.5 声明抛出异常 . . . . . . . . . .
0 码力 |
330 页 |
6.54 MB
| 1 年前 3
-
机制,用于扩展自己公司定制。 事件机制:实现异步化事件通知,SDK 数据变化异步通知等逻辑,是 Nacos 高性能的关键部分。 日志模块:管理日志分类,日志级别,日志可移植性(尤其避免冲突),日志格式,异常码+帮 助文档。 回调机制:SDK 通知数据,通过统⼀的模式回调用户处理。接口和数据结构需要具备可扩展性。 寻址模式:解决 Server IP 直连,域名访问,Nameserver 寻址、广播等多种寻址模式,需要可 ,轮询, 权重”四种方式大致能够保持整体是均衡的,服务端重启也不会影响整体均衡,其中“最小连接 数,最快响应速度”是有状态的算法,因为数据延时容易造成堆积效应;长连接因为建立连接后, 如果没有异常情况出现,连接会⼀直保持,断连后需要重新选择⼀个新的服务节点,当出现服务 Nacos 架构 < 46 节点发布重启后,最终连接会出现不均衡的情况出现,“随机,轮询,权重”的策略在客户端重 连切 自定义 kee p alive 机制 基于 mina, KeepAliveF ilter 事件通知 正常关闭 有事件通知 有事件通知 有事件通知 有事件通知 有事件通知 有事件通知 断网异常 keep alive 机制,有事件 通知 tpc 及自定 义心跳,有事 件通知 自定义心 跳,有事件 通知 自定义心跳, ping-pong 包探测,无事 件通知 1.自定义心
0 码力 |
326 页 |
12.83 MB
| 9 月前 3
-
从如上代码可总结出身份验证的步骤: 1、收集用户身份/凭证,即如用户名/密码; 2、调用 Subject.login 进行登录,如果失败将得到相应的 AuthenticationException 异常,根 据异常提示用户错误信息;否则登录成功; 3、最后调用 Subject.logout 进行退出操作。 如上测试的几个问题: 1、用户名/密码硬编码在 ini 配置文件,以后需要改成如数据库存储,且密码需要加密存储; AuthenticationStrategy 进行多 Realm 身份验证; 5、Authenticator 会把相应的 token 传入 Realm,从 Realm 获取身份验证信息,如果没有返 回/抛出异常表示身份验证失败了。此处可以配置多个 Realm,将按照相应的顺序及策略进 行访问。 Realm Realm:域,Shiro 从从 Realm 获取安全数据(如用户、角色、权限),就是说 SecurityManager 支持三种方式的授权: 编程式:通过写 if/else 授权代码块完成: 注解式:通过在执行的 Java 方法上放置相应的注解完成: 没有权限将抛出相应的异常; JSP/GSP 标签:在 JSP/GSP 页面通过相应的标签完成: 后续部分将详细介绍如何使用。 授权 基于角色的访问控制(隐式角色) 1、在 ini 配置文件
0 码力 |
219 页 |
4.16 MB
| 10 月前 3
-
让我像下面这样做: 这就是了!它再简单不过了。 但如果他们的登录尝试失败了会怎样?你能够捕获各种具体的异常来告诉你到底发生了什么,并允许你去处理并作 出相应反应: 你能够检查到许多不同类型的异常,或抛出你自己的自定义条件的异常——Shiro 可能不提供的。请参见 AuthenticationException JavaDoc 获取更多。 Handy Shiro 拥有丰富的运行时 AuthenticationException 层次结构,可以指出尝试失败的确切原因。你可以用一个 try/catch 块将 login 方法包围起来,然后捕捉任何你期望的异常并进行相应的反应。例如: try { currentUser.login(token); } catch ( UnknownAccountException uae ) { … } //No problems, continue on as expected... 如果现有的异常类不符合您的要求,可以自定义 AuthenticationExceptions 来代表具体的异常情况。 Login Failure Tip 虽然你的代码可以以特定的异常作出反应,并执行必要的逻 辑,最安全的做法是只显示通用的失败消息给终端用户,例如, “错误的用户名或密码。”。这样将确保具体的信息提供给黑
0 码力 |
92 页 |
1.16 MB
| 1 年前 3
-
面向对象 平台无关性 分布式 可靠性 不支持直接操作指针,避免了对内存的非法访问; 自动单元回收功能防止内存丢失等动态内存分配导 致的问题;解释器运行时实施检查,可发现数组和 字符串访问的越界;提供了异常处理机制。安全性。 多线程 网络编程 编译和解释并存 大纲 Java 技术概述 Java 平台核心机制 Java 开发环境 Java 基本开发流程 Java 技术的特点 面向对象 平台无关性 将程序代码从一种指令转换为另一种指令 解释器将字节码指令逐条解释成所在底层平台 能够处理的指令格式,解释一条执行一条 JIT, Just-In-Time 传统解释器的解释执行是转换一条,运行完后就将其扔掉;JIT 会自动检测指令的运行情况,并将使用频率高(如循环运行)的指令解释后保存下来, 下次调用时就无需再解释(相当于局部的编译执行),显著提高了 Java 的运行效率。 大纲 Java 技术概述 Java 平台核心机制
0 码力 |
33 页 |
1.17 MB
| 1 年前 3
-
session 会话对象 application 应用服务器对象 page JSP 本身页面类对象 pageContext 页面级环境变量,作为页面级容器 out 输出对象 exception 异常对象 config 配置对象,用于读取 web.xml 配置信息 大纲 JSP 概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题 响应对象 response ▶ JSP <%= %> 大纲 JSP 概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题 异常对象 exception JSP 内置对象 exception 对应 Java 中的 java.lang.Throwable 接 口对象。它自动封装 JSP 页面中出现的异常。 异常对象只有在错误页面中可以使用,即:使用 page 指令的属 性isErrorPage=”true”声明的页面。 <% 10 int s = 0; 11 int t = 0; 12 int p = s / t; // 出现异常的语句 13 %> 14