北京华力创通科技股份有限公司1月招聘面试题195道2020114

对异常处理语句try-catch-finally,下面哪个说法正确()

A、如果有多个catch语句,对所有的catch语句都会执行一次

B、如果有多个catch语句,对每个符合条件的catch语句都会执行一次

C、多个catch的情况下,异常类的排列顺序应该是父类在前,子类在后

D.一般情况下,finally部分都会被执行一次


答案:D 

解析:

try语句 执行你所定义的或者你所捕获到的错误测试的代码块

catch :定义当try 代码块发生错误所需要执行的代码块

finally:无论是否有异常都会执行



在try...except...else结构中,如果try块的语句引发了异常则会执行else块中的代码。

此题为判断题(对,错)。


正确答案:×


下列关于try和catch语句的描述中,错误的是______。

A.不同的catch代码段是不同的作用域,但是可以访问相互之间定义的局部变量

B.如果没有异常产生,则所有的catch代码段都被略过不执行

C.异常总是由距离产生异常最近的匹配catch代码段处理

D.try代码段后跟一个或多个catch代码段


正确答案:A


Foxbase中,关于条件分支语句说法正确的是()。

  • A、最多只能有2重嵌套
  • B、如果条件为真,则执行ELSE与ENDIF之间的语句
  • C、如果条件为假,则执行IF与ELSE之间的语句
  • D、如果条件为假,则执行ELSE与ENDIF之间的语句

正确答案:D


在try程序块中发生了异常,其后如果有多个catch参数类与之匹配,会执行那个catch块中的异常处理程序。


正确答案:当try语句块中的代码执行时发生异常,程序的正常运行便中断,并抛出异常对象,然后在try块后面的各个catch()中查找与异常对象相匹配的异常类,当找到第一个与之相匹配的参数类时,就执行包含这一参数类的catch语句块中的代码。


北京华力创通科技股份有限公司1月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:遇到反爬机制怎么处理?可用的回答 : 反爬机制: headers方向 判断User-Agent、判断Referer、判断Cookie。 将浏览器的headers信息全部添加进去 注意:Accept-Encoding;gzip,deflate需要注释掉 问题 Q2:介绍一下except的用法和作用?可用的回答 : tryexceptexceptelsefinally 执行try下的语句,如果引发异常,则执行过程会跳到except语句。 对每个except分支顺序尝试执行,如果引发的异常与except中的异常组匹配,执行相应的语句。 如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。 try下的语句正常执行,则执行else块代码。如果发生异常,就不会执行 如果存在finally语句,最后总是会执行。 问题 Q3:什么是粘包? socket 中造成粘包的原因是什么? 哪些情况会发生粘包现象?可用的回答 : 粘包:在接收数据时,一次性多接收了其它请求发送来的数据(即多包接收)。如: 对方第一次发送hello,第二次发送world,在接收时,应该收两次, 一次是hello,一次是world,但事实上是一次收到helloworld,一次收到空,这种现象叫粘包。 原因: 粘包问题主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的。 什么情况会发生: 1、发送端需要等缓冲区满才发送出去,造成粘包 发送数据时间间隔很短,数据很小,会合到一起,产生粘包 2、接收方不及时接收缓冲区的包,造成多个包接收 客户端发送了一段数据,服务端只收了一小部分, 服务端下次再收的时候还是从缓冲区拿上次遗留的数据,产生粘包 解决方案: 一个思路是发送之前,先打个招呼,告诉对方自己要发送的字节长度, 这样对方可以根据长度判断什么时候终止接受 注意: 只有TCP有粘包现象,UDP永远不会粘包! 问题 Q4:如果让你来防范网站爬虫,你应该怎么来提高爬取的难度?可用的回答 : 1. 判断headers的User-Agent; 2. 检测同一个IP的访问频率; 3. 数据通过Ajax获取; 4. 爬取行为是对页面的源文件爬取,如果要爬取静态网页的html代码,可以使用jquery去模仿写html。 问题 Q5:什么是反射?以及应用场景?可用的回答 : 通过字符串获取对象的方法称之为反射 python中可以通过如下方法实现: 1. getattr 获取属性 2. setattr 设置属性 3. hasattr 属性是否存在 4. delattr 删除属性 问题 Q6:简述一下爬虫的步骤?可用的回答 : 确定需求; 确定资源; 通过url获取网站的返回数据; 定位数据; 存储数据。 问题 Q7:Python中的生成器是什么?可用的回答 :实现迭代器的方法称为生成器。这是一个正常的函数,除了它在函数中产生表达式。问题 Q8:什么是粘包? socket 中造成粘包的原因是什么? 哪些情况会发生粘包现象?可用的回答 : 粘包:在接收数据时,一次性多接收了其它请求发送来的数据(即多包接收)。如: 对方第一次发送hello,第二次发送world,在接收时,应该收两次, 一次是hello,一次是world,但事实上是一次收到helloworld,一次收到空,这种现象叫粘包。 原因: 粘包问题主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的。 什么情况会发生: 1、发送端需要等缓冲区满才发送出去,造成粘包 发送数据时间间隔很短,数据很小,会合到一起,产生粘包 2、接收方不及时接收缓冲区的包,造成多个包接收 客户端发送了一段数据,服务端只收了一小部分, 服务端下次再收的时候还是从缓冲区拿上次遗留的数据,产生粘包 解决方案: 一个思路是发送之前,先打个招呼,告诉对方自己要发送的字节长度, 这样对方可以根据长度判断什么时候终止接受 注意: 只有TCP有粘包现象,UDP永远不会粘包! 问题 Q9:迭代器和生成器的区别?可用的回答 : 1)迭代器是一个更抽象的概念,任何对象,如果它的类有next方法和iter方法返回自己本身。对于 string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调 用iter()函数,iter()是python的内置函数。iter()会返回一个定义了next()方法的迭代器对象,它在容器中 逐个访问容器内元素,next()也是python的内置函数。在没有后续元素时,next()会抛出一个 StopIteration异常 2)生成器(Generator)是创建迭代器的简单而强大的工具。它们写起来就像是正规的函数,只是在需 要返回数据的时候使用yield语句。每次next()被调用时,生成器会返回它脱离的位置(它记忆语句最后 一次执行的位置和所有的数据值) 区别:生成器能做到迭代器能做的所有事,而且因为自动创建了iter()和next()方法,生成器显得特别简洁, 而且生成器也是高效的,使用生成器表达式取代列表解析可以同时节省内存。除了创建和保存程序状态 的自动方法,当发生器终结时,还会自动抛出StopIteration异常 问题 Q10:常见的HTTP状态码有哪些?可用的回答 :

关于finally块中的代码描述正确的是()

  • A、finally块中的代码总是被执行的
  • B、如果try块后没有catch块,finally块中的代码才会执行
  • C、异常发生时才被执行
  • D、异常没有发生时才被执行

正确答案:A


在Java的异常处理语句try-catch-final中,以下描述不正确的是()。

  • A、try后面是可能产生异常的代码,catch后面是捕获到某种异常对象时进行处理的代码,final后面是没有捕获到异常时要执行的代码
  • B、try后面是可能产生异常的代码,catch后面是捕获到某种异常对象时进行处理的代码,final后面是无论是否捕获到异常都必须执行的代码
  • C、catch语句和final语句都可以缺省
  • D、catch语句用来处理程序运行时的非致命性错误,而final语句用来处理程序运行时的致命性错误
  • E、当程序运行时抛出的异常是cathe语句中异常的子类,异常也会被捕捉执行相应的catch语句

正确答案:A,C,D


下列关于抛出异常的描述中,错误的一项是()。

  • A、异常可以由try代码段中的语句抛出
  • B、异常可以从被try代码段中调用的方法中抛出
  • C、异常的抛出并不影响代码段的执行顺序
  • D、异常还可能产生于数组下标越界及Java虚拟机内部的错误等

正确答案:C


下面的异常处理说明正确的是()

  • A、try块只能使用一个catch子句
  • B、try块必须同时与catch子句和finally子句一起使用
  • C、try块不能单独使用
  • D、try块中如果执行了return语句,则其finally子句不能执行

正确答案:C


在finally代码块中的代码,()。

  • A、在任何错误处理代码之前执行
  • B、不执行,除非在前面的try块中产生异常
  • C、不能保证在任何确定的时间内执行,但是将会优先于“碎片收集”被JVM调用
  • D、保证执行,无论try块中是否产生异常

正确答案:D

更多 “北京华力创通科技股份有限公司1月招聘面试题195道2020114” 相关考题
考题 问答题假设下列try-catch语句块中的第2个语句s2产生一个异常,试回答下述问题: ⑴语句s3会执行吗?  ⑵如果catch捕获到异常,语句s4会执行吗? ⑶如果异常未被捕获,语句s4会执行吗?正确答案:若try-catch语句块中的第2个语句s2产生一个异常,⑴语句s3不会执行,⑵如果catch捕获到异常,异常处理后,会继续执行语句s4,⑶如果异常未被捕获,则程序终止运行,语句s4也不会执行。解析:暂无解析

考题 判断题无论try块中的语句是否发生异常,都会执行catch块中的语句。()A 对B 错正确答案:对解析:暂无解析

考题 判断题带有else子句的异常处理结构,如果不发生异常则执行else子句中的代码。A 对B 错正确答案:对解析:暂无解析

考题 在下面的代码中,continue语句的作用时() for(int i=0;iif(objArray[i]!=5)        continue;  objArray[i]:=100;}  A、跳过if程序块中congtinue下面的语句,执行if块外面的语句B、跳过整个函数中下面所有的语句,跳出整个函数C、跳过for循环中continue下面的语句,直接开始新的循环D、如果if程序块中有else块,则跳过else块,执行下面的语句正确答案:C

考题 如果在try程序块中没有发生异常,那么当该程序块执行完后,程序继续执行什么地方的语句?正确答案:如果一个try程序块中没有发生任何异常,那么就跳过该块的异常处理程序,继续执行最后一个catch块之后的代码。如果有finally程序块的话,就执行finally程序块及其后的语句。

考题 单选题finally块中的代码将()A 总是被执行B 如果try块后面没有catch块时,finally块中的代码才会执行C 异常发生时才被执行D 异常没有发生时才执行正确答案:A解析:暂无解析

考题 单选题关于finally块中的代码描述正确的是()A finally块中的代码总是被执行的B 如果try块后没有catch块,finally块中的代码才会执行C 异常发生时才被执行D 异常没有发生时才被执行正确答案:A解析:暂无解析

考题 问答题如果在try程序块中没有发生异常,那么当该程序块执行完后,程序继续执行什么地方的语句?正确答案:如果一个try程序块中没有发生任何异常,那么就跳过该块的异常处理程序,继续执行最后一个catch块之后的代码。如果有finally程序块的话,就执行finally程序块及其后的语句。解析:暂无解析

考题 问答题在try程序块中发生了异常,其后如果有多个catch参数类与之匹配,会执行那个catch块中的异常处理程序。正确答案:当try语句块中的代码执行时发生异常,程序的正常运行便中断,并抛出异常对象,然后在try块后面的各个catch()中查找与异常对象相匹配的异常类,当找到第一个与之相匹配的参数类时,就执行包含这一参数类的catch语句块中的代码。解析:暂无解析

考题 finally块中的代码将()A、总是被执行B、如果try块后面没有catch块时,finally块中的代码才会执行C、异常发生时才被执行D、异常没有发生时才执行正确答案:A