bluej尝试/捕获/异常

时间:2014-04-18 02:42:39

标签: java

我发布了我的三个问题,问题在代码中发生,并在此处发布。

问1什么是线程?我如何使用它们? 问2如何'尝试'/'捕获'工作? 问3什么是例外?见代码。

提前谢谢你:)

public void start() {
  //  Question 1: What are these threads and how do i implement them?
  Thread frameTiming = new Thread (this);
  frameTiming.start ();
}

public void run() {
  while (true) {
    xleft-=10;
    yleft-=10;
    xleft2+=10;
    yleft2+=10;
    i-=5;
    repaint();
    //  Question 2: what does try/catch do?
    try {
      Thread.sleep(40);
    // question3: what does this exception do exactly? :0
    } catch (Exception e) {
    }

}

2 个答案:

答案 0 :(得分:0)

线程是包含足够支持结构的对象,可用作轻量级进程。

这个过程就像一个正在执行的程序,但它是一个形式化的定义,是操作系统管理的东西,它决定一个进程是否有CPU时间。

线程就像一个轻量级进程的原因是因为即使它几乎独立于主程序分配CPU时间,它也不会获得进程获得的所有内容。它与进程中的其他线程共享内存,而实际进程获得自己的私有内存空间。

您添加的try / catch块是为了捕获在调用Thread.sleep(...)时抛出的已知声明异常。由于线程要求从CPU中取出至少40毫秒,因此有可能当它离开CPU时,程序关闭,或者某个其他线程告诉它“唤醒”#34;出于其他原因。如果发生这种情况,那么Thread.sleep(...)调用将无法正常完成睡眠,而是以InterruptedException

异常终止呼叫

答案 1 :(得分:0)

  

问1什么是线程?我如何使用它们?

当你运行代码时,它通常都是线性运行的。假设您要求用户输入。程序停止然后等待用户输入。如果用户从不输入怎么办?该计划永远不会继续前进。拥有多个线程允许您在等待用户输入时在后台执行操作。它还允许您将工作分成多个同时使用的方法以利用多个核心,尽管如果没有适当的算法来划分工作,您自己也不会做很多帮助。

How to start a thread in Java

  

问题2'尝试' /'赶上'工作?

在Java和许多其他语言中,try和catch是如何处理通常您认为可以从中恢复的可能错误。例如,如果您向用户询问某个号码,他可能会给您一封信,因此您不会要求用户提供一个号码,您可以尝试向用户询问号码。如果用户犯了错误,你就会抓住他的错误然后追索。这并不仅仅适用于用户输入,假设您打开文件但它不存在或发生某些其他错误导致读取操作失败。这种可能性要求你尝试而不是继续前进而去做。

How to use try/catch

  

问题3什么是例外?

当出现问题时,方法会抛出异常。在Java中,有两种类型的异常,选中和未选中。大多数未经检查的异常是由程序员错误引起的,例如数组超出范围。然而,常见的例外情况,例如尝试打开文件,但由于它不存在而无法解决,这些异常称为检查异常,这意味着您必须使用try catch来包围它们,这对于Java来说是非常独特的。

Click here to learn in a more professional manner the three types of Exceptions in Java