首页 \ 问答 \ Overriding和exception之间的矛盾(Contradiction between Overriding and exception)

Overriding和exception之间的矛盾(Contradiction between Overriding and exception)

我正在阅读Sierra Kathe SCJP 6的书,我陷入了矛盾之中:

最重要的方法可以抛出更少或更少的异常。 仅仅因为被覆盖的方法“冒风险”并不意味着覆盖的子类'异常具有相同的风险。 底线:无论重写的方法声明什么,重写方法都不必声明它将永远不会抛出的任何异常。

意味着如果重写方法可以抛出异常,如果子类中的相同方法抛出了exeption,但在测试之后我发现它不可能出现任何异常,如Exception或SQLException或IOException。 但是对于一些例外的NullPointerException,它可以很好地工作


I am reading the book of Sierra Kathe SCJP 6 and I fell into a contradiction:

The overriding method can throw narrower or fewer exceptions. Just because an overridden method "takes risks" doesn't mean that the overriding subclass' exception takes the same risks. Bottom line: an overriding method doesn't have to declare any exceptions that it will never throw, regardless of what the overridden method declares.

Mean that if the overriding method can throw an exception if the same method from the subclass threw the exeption, but after testing I found that its impossible for any exception as Exception or SQLException or IOException. But for some exception such NullPointerException it works perfectly


原文:https://stackoverflow.com/questions/28136651
更新时间:2024-01-02 20:01

最满意答案

Javascript标签,即使它们通过src=属性加载外部文件,也无法自动关闭。 您可能需要向正在创建的DOM元素添加一些非空内容,以强制它非自动关闭。 具有单个空格的textnode可以。


Javascript tags, even if they're loading an external file via the src= attribute, can't be self closing. You may need to add some non-empty content to the DOM element you're creating to force it to be non-self closing. A textnode with a single space would do.

相关问答

更多
  • 不,没有办法指定一个特定的使用方式,或修改现有的要求。 您最好的可行解决方案是使用libxml_use_internal_errors禁用错误报告: $dom = new DOMDocument; libxml_use_internal_errors(true); $dom->loadHTML('...'); libxml_clear_errors(); No, there is no way of specifying a particular doctype to use, or to modify ...
  • 原来问题出在SilverStripe的错误报告上。 由于我在开发模式下使用它,因此抛出了实际上并不重要的错误。 由于我需要继续在开发模式下工作,我必须包含@来抑制导致问题的行上的错误。 例 @$dom->loadHTMLFile($url); 我还必须删除我以后学过的完全错误的地方的验证行。 我希望这可以帮助别人。 It turns out the problem was with SilverStripe's error reporting. Since I was using it in dev mo ...
  • 有一个问题的描述和php.net的解决方案: 当保存使用LIBXML_HTML_NOIMPLIED选项启动的HTML片段时,它将最终被“破坏”,因为libxml需要根元素。 libxml将尝试通过在字符串末尾添加结束标记来修复片段,该标记基于它在片段中遇到的第一个打开的标记。 举个例子:

    Foo

    bar

    最终会:

    Foo

    bar

    最简单的解决方法是自己添加root标记并在以后剥离它: $ html-> loadHTML(''。$ content。' ...
  • 试试这个,并替换行内容; $body2 = mb_convert_encoding($body, 'HTML-ENTITIES', "UTF-8"); 至 ; $body2 = convertor($body); 并插入您的代码; function convertor($ToConvert) { $FromConvert = html_entity_decode($ToConvert,ENT_QUOTES,'ISO-8859-1'); $Convert = mb_ ...
  • imageObj.src应该是一个相对路径。 例如,对于同一路径中的图像,如果像imageObj.src ='image1.jpg'那样; Path是相对于正在运行的html文件。 imageObj.src should be a relative path. For example to an image in the same path, if would be something like imageObj.src = 'image1.jpg'; Path is relative to the htm ...
  • 无法重现: http : //codepad.org/N8BlsQro 如果要使用load或loadXML标记必须是有效的X(HT)ML。 HTML是基于SGML的。 尝试使用loadHTML或loadHTMLFile 。 请注意,当您使用loadHTML或loadHTMLFile ,DOM将尝试修复任何无效的HTML,以使其可用于DOM。 例如,它将在任何部分HTML文档周围添加一个基本的HTML框架,这可能会对您的XPath查询产生影响(不是在\\a的情况下)。 Cannot reproduce: ht ...
  • 现在您已经发布了错误消息,这是一系列代码: echo " $('#".$node['ID']."').resizable();\n"; 它必须是$node->getAttribute('ID') 。 Now that you've got the error message posted, it's this series of code: echo " $('#".$node['ID']."').resizable();\n"; It'd have to be $node->get ...
  • Javascript标签,即使它们通过src=属性加载外部文件,也无法自动关闭。 您可能需要向正在创建的DOM元素添加一些非空内容,以强制它非自动关闭。 具有单个空格的textnode可以。 Javascript tags, even if they're loading an external file via the src= attribute, can't be self closing. You may need to add some non-empty content to the DOM e ...
  • 我找到了原因。 DOM扩展是在libxml2上构建的,其HTML解析器是为HTML 4制作的。如果HTML5 doctype和meta元素如此 HTML代码将被解释为ISO-8859-something和non ASCII字符将转换为HTML实体。 但是类似HTML4的版本将起作用 参考: UTF-8与PHP DOMDocument ...
  • 输出HTML时,请选择特定节点而不是整个文档: Lorem'; $dom = new \DOMDocument(); $dom->loadHTML($content); $node = $dom->getElementsByTagName('h1')->item(0); $node->setAttribute('data-custom','true'); print $dom->saveHTML($node); ...

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。