当前位置:  技术问答>java相关

[源码分析]:能给我解释一下这段代码否?

    来源: 互联网  发布时间:2015-09-08

    本文导语:  public int print(Graphics g, PageFormat pf, int page)  throws PrinterException{     ////???       if (page >= 1) return Printable.NO_SUCH_PAGE;              Graphics2D g2 = (Graphics2D)g;///////??????              g2.setPaint(C...

public int print(Graphics g, PageFormat pf, int page)
 throws PrinterException{     ////???
      if (page >= 1) return Printable.NO_SUCH_PAGE;
      
      Graphics2D g2 = (Graphics2D)g;///////??????
      
      g2.setPaint(Color.black);
      g2.translate(pf.getImageableX(), pf.getImageableY());
      g2.draw(new Rectangle2D.Double(0, 0,
         pf.getImageableWidth(), pf.getImageableHeight()));

      drawPage(g2);
      return Printable.PAGE_EXISTS;
   }
就是标记????的两个地方!
一个地方20分!
[金牌承诺]在线等待,解决放分

|
throws PrinterException语句负责抛出一个关于打印的异常错误

也就是你的代码可能会出现一些未知的情况导致你无法打印,通过这种捕获异常来保护代码

Graphics2D g2 = (Graphics2D)g  通过将参数g转化为Graphics2D类型来创建一个新的Graphics2D实例g2

|
throws PrinterException把PrinterException异常向上抛出,抛给了这个方法的调用者,就是说public int print(Graphics g, PageFormat pf, int page)这个方法会引发一个PrinterException异常,而你在这个方法体中没有捕捉它(try catch),就是没有对它处理,Java为了代码的安全和稳定,要求编程者必须对异常做出处理,所以如果你不在方法体中处理,就必须显示的抛出(用throws语句),同样在此方法调用者中,如果你仍然不处理,则必须继续向上抛出此异常,直到你处理了为止,如果你一直没有处理最终,异常将会被抛到main(即程序入口)方法中,当然你还可以把它抛出,那么它就由JVM处理了:)。
一般处理异常有两种不同的思路:第一个是就近处理,哪抛出异常,就在那处理。
第二个是集中处理,就是把异常都向上抛出,在适当的地方用try加多个catch,集中处理。

|
The PrinterException 
class and its subclasses are used to indicate that an exceptional condition has occurred in the print system. 

This Graphics2D 
class extends the Graphics class to provide more sophisticated control over geometry, coordinate transformations, color management, and text layout. This is the fundamental class for rendering 2-dimensional shapes, text and images on the Java(tm) platform. 


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux/centos源码安装nginx编译配置选项参数介绍
  • 大家好,我有从网上下的BT源码和MPLAYER源码(是LINUX源码安装的)我想分析一下这些源码。可是这些源码有工作区么?
  • docker源码分析之容器日志处理与log-driver实现
  • 内核源码和结果make过的内核源码有什么区别
  • linux/centos下安装nginx(rpm安装和源码安装)详细步骤
  • 怎么通过内核源码包生成源码树?
  • 使用GDB单步调试源码时,单步执行与源码不一致.
  • 你们说的查看源码和调试源码的vi(或vim),是指gvim把?
  • 用 yum 安装的源码跟 www.kernel.org down的源码有没差别?
  • 如何发布自己的源码包,以及从别人的源码包中获取编译参数
  • FC5源码包安装,哪里有源码包的下载啊?都瞎说。
  • gdb调试elf文件,为什么只能看到c源码,看不到汇编源码???
  • 我在学习4.4BSD设计与实现那本书时,发现很难找到源码了,那位先行者可以给我留一个源码的连接?谢了
  • 请问,shell的一些命令的源码在linux源码树中的那部分?
  • 搜索引擎蜘蛛源码,谁能帮我编译一下!!!源码相赠(没办法,我了解Linux!!!)
  • 内核源码求助?
  • linux下命令应用软件的源码放在那里?
  • redhat 3张光盘中那一张包含源码?
  • 请问怎么快速找到sys_open的源码
  • 请大家帮忙gnu ftp上gcc源码是哪个文件?
  • 100分求能收发附件的jsp与java mail结合的源码~~~~


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3