php接口异常,api接口异常怎么办

0f9913d55500e24ce2c751cf0bd95989.png

异常:

在程序开发过程中出现的不正常情况,就是异常。比如除数是0,参数为null,调用参数的成员变量或者方法,数组下标越界。

异常分为两大类型:

(1)Exception:程序员可以解决的:空指针,除数是0,数组下标越界。

(2)Error:程序员无法解决的:如内存溢出。

Throwable是这两种类型的父类

Exception的分类:

按照编译器是否检查进行分类:非检查性异常:也称之为运行时异常,即编译器在检查语法期间,不做异常检查。

检查性异常:也称之为编译时异常,此时,编译器会强制检查语法中的异常情况。如有异常,在编译期需要做异常处理。

Exception的结构:RuntimeException:

NullPointerException

ArrayIndexOutOfBoundsException

ClassCastException

IllegalArgumentExcetion

NumberFormatException

IOException:

EOFException

FileNotFoundException

异常的处理:

(1)当异常出现时,终止程序。

(2)当异常出现时,我们使用处理机制进行处理异常。无需终止程序。体验度:尽可能的选择异常处理机制。

异常处理机制:

基本思想:

在可能出现异常的代码块区域,进行尝试检查,如果出现了异常信息,我们将这些信息封装成某一异常类型的对象, 然后进行捕获与处理。

相关推荐:《常见问题》try{

可能出现异常的代码块

/*如果有异常,jvm会将异常信息,封装成对象

将地址信息赋值给catch中的形参

*/

}catch(Exception e){

进行处理e

}

多catch语句块情况:

当我们在尝试捕获异常对象时,想对多种不同的异常对象分别处理时, 需要使用多个catch语句块。

说明:当在try中出现了异常信息,那么就不会再执行try中代码块的后续部分。进入相应的catch代码块中执行处理。

多catch语句块情况下,catch处理的异常种类书写顺序:

先写子类异常类型,再写父类异常。

throw:抛出关键字,在本方法中出现的异常,不做try-catch处理。

而是抛给调用者处理。需要使用throw关键字。

throws:声明异常关键字,通常用于方法的定义上,用于通知调用者。(1)当throw的异常对象为检查性异常,方法上必须throws此异常类型。

(2)如果throw的异常对象为非检查性异常,方法上不必throws此异常类型。

方法重写时的throws的用法

可行的:(1)可以相同。

(2)可以是部分。

(3)异常的子类型可行,也可以是多个子类型。

不行的:(1)不同的异常类型,也不可以多声明不同类型的异常类型。

(2)异常的父类型不行。

finally:

是为try-catch提供了统一的出口。不管try与catch语句块是否发生了异常,最终都会执行finally里的代码块 。

通常用于处理一些资源的关闭等操作:

如:读取文件时关闭操作,或者是删除临时文件

finally语句块可选。

当语句中有return时,先顺序运行,若遇上return先将其返回值悬挂,然后运行一遍finally中的代码块后执行return(finally中没有return时,不会对返回值产生影响)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

并发编程5-同步器

Synchronizer 控制多个线程的流程,比如线程执行到某一个点的时候是等待还是通过。 JDK中自带了信号量,关卡,闭锁闭锁CoutDownLatch 达到最终状态前是关闭的,所有线程在此阻塞, 达到最终状态后开放,并且不可…

RE validation in Java EE

pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。 Pattern类中有两个最常用的方法&#xff1…

Apache Rewrite 规则详解

1、Rewrite规则简介: Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess) 两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apach…

php源码编程,10个小技巧让你做好php源码编程

PHP是目前使用最广泛的网站编程语言,也是今后发展的一大趋势。有很多站长或多或少掌握一些php编程方法,下面小编就介绍十点实用的php编码技巧。1、cho比print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接&…

iPhone与Android手机 各个型号的UserAgent

微信端模拟:Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.2.380■iPhone●iOSMozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/…

动态调用WCF服务[转]

原文地址:http://blog.csdn.net/castlooo/archive/2010/05/06/5562619.aspx客户端调用wcf ,有时需要动态的调用服务端的WCF中的方法,本方法,反射wcf 的接口,动态调用接口中的方法。 主要为,动态绑定&#x…

java 正规 忽略,java-正则表达式查找变量并忽略方法

我正在尝试编写一个正则表达式,以查找给定一段JavaScript代码中的所有变量(并且只有变量,完全忽略方法).实际的代码(执行regex的代码)是用Java编写的.现在,我有这样的事情:Matcher matcherPattern.compile(".*?([a-z]\w*?).*?").matcher(string);while…

【吐槽】博客园新的原创文章在搜索引擎的排名不及转载的站点

最近写博客比较多,但发现文章被一些网站转载后,排名比博客园的链接还要高,有些搜索引擎甚至连博客园的链接都没有,坑爹,坑爹。。。 以前博客园的网友也遇到过类似的情况,也分享过一些防转载的经验&#xff…

Qt之程序发布以及打包成exe安装包

一、简述 Qt项目开发完成之后,需要打包发布程序,而因为用户电脑上没有Qt配置环境,所以需要将release生成的exe文件和所依赖的dll文件复制到一个文件夹中,然后再用 Inno Setup打包工具 打包成一个exe安装包,就可以发布了…

把ASP应用中的Session传递给asp.net应用

ASP.NET APPLICATION要使用原来的ASP用户系统,于是问题出现了,ASP APPLICATION怎样才能让用户登录的状态及用户信息在ASP.NET中依然有效呢。于是我们考虑用构造FORM来自动提交传递ASP应用中的Session变量。例子如下ASP应用URL为http://127.0.0.1/asp/&am…

linux下生成key

linux下生成key 使用public/private key让putty(ssh)自动登录(以及linux上使用密钥做ssh自动登陆) 方法一:使用puttygen.exe 第一步:生成密匙 运行puttygen.exe,选择需要的密匙类型和长度,使用默认的SSH2(R…

php获取字符串扩展,PHP7扩展开发之字符串处理

标签:本文和大家分享的主要是PHP7扩展开发中字符串的处理相关知识,希望通过本文的分享能帮助大家更好的学习php。这次,我们来看看字符串在PHP扩展里面如何处理。示例代码如下:$len strlen($prefix);$substr substr($string, 0, …

使用Nginx+WordPress搭建个人网站

背景 很多研究技术的朋友喜欢写博客。如果希望搭建一个完全属于自己的网站,也并不困难。这里简要分享一下我搭建这个博客网站的经验。 关键步骤 购买服务器、域名、DNS云解析服务网站备案(可选)安装NginxWordPressMySQLPHP配置WordPress运行网…

UNION ALL returning wrong results?

有应用人员反映某套Linux上的11.2.0.1数据库系统中出现了UNION ALL后返回的结果集不正确的问题,我们具体分析下出现问题的其中一条语句: SELECT MTL_SECONDARY_INVENTORIES.SECONDARY_INVENTORY_NAME,MTL_SECONDARY_INVENTORIES.ORGANIZATION_ID,MTL_SECONDARY_INVENTORIES.DES…

android jni java类型与c语言类型互换

1.java String转换 C str char* Jstring2CStr(JNIEnv* env, jstring jstr) {char* rtn NULL;jclass clsstring (*env)->FindClass(env,"java/lang/String");jstring strencode (*env)->NewStringUTF(env,"GB2312");jme…

zip:命令行下zip压缩/解压缩

在Ubuntu 18.04下验证,造冰箱的大熊猫cnblogs 2019/6/6 1压缩单个文件zip package.zip file2压缩多个文件zip package.zip file1 file23压缩单个文件夹zip -r package.zip folder4压缩多个文件夹zip -r package.zip folder1 folder25压缩文件、文件夹zip -r package…

inv(a) matlab,在MATLAB中,inv(A)表示的是()

在MATLAB中,inv(A)表示的是()答:矩阵A的逆下列不属于植物生长调节剂的是( )。答:DDTHe received four years of training in English and two years in English teaching.He is a _______ English instructor.答:qualified第五章&…

TSQL与PL/SQL的比较

TSQL与PL/SQL的比较 以前一直用mssql 做开发,最近的项目都Oracle, 1)数据类型 TSQL PL/SQL numeric(p,s) numeric(p,s) or NUMBER(p,s) decimal(p,s) decimal(p,s) or NUMBER(p,s) char(m) Char(m) varchar(m) varchar2(m) datetime date…

前端文件表单/ajax上传实例代码

表单上传文件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>测试文件上传</title> </head> <body> <form action"/attach/upload" enctype"multipart/form-dat…

matlab2012生成dll,64位win7下vc2010如何调用matlab2012a中生成的dll文件

本文说是原创&#xff0c;但核心部分是参考http://blog.sina.com.cn/s/blog_a5fdbf0101018n91.html(大家可以先看看这篇文章)&#xff0c;在此再次感谢debug童鞋。debug童鞋的系统是 win7 32位 vc2010 (32位编译器) Matlab2012a &#xff0c;如果童鞋们win7是32位的话就不必…