首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bluej尝试/捕获/异常

bluej尝试/捕获/异常
EN

Stack Overflow用户
提问于 2014-04-18 10:42:39
回答 2查看 2.1K关注 0票数 0

我会在代码中出现问题的地方发布我的三个问题,并将其发布在这里。

Q1什么是线程,我如何使用它们?

问题2:“try”/“catch”是如何工作的?Q3有什么例外?请参见代码。

提前感谢您:)

代码语言:javascript
复制
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) {
    }

}
EN

回答 2

Stack Overflow用户

发布于 2014-04-18 10:50:11

线程是包含足够的支持结构来充当轻量级进程的对象。

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

线程之所以像轻量级进程,是因为即使它几乎独立于主程序获得分配的CPU时间,它也不能获得进程所获得的一切。它与进程中的其他线程共享内存,而真正的进程获得自己的私有内存空间。

添加的try / catch块用于捕获调用Thread.sleep(...)时抛出的已知的已声明异常。由于线程请求从CPU上移除至少40毫秒,因此有可能在它离开CPU时,程序关闭或其他一些线程出于其他原因告诉它“唤醒”它。如果发生这种情况,则Thread.sleep(...)调用将不会正常完成休眠,而是会使用InterruptedException异常终止调用

票数 0
EN

Stack Overflow用户

发布于 2014-04-18 10:53:03

Q1什么是线程,我如何使用它们?

当你运行代码时,它通常都是线性运行的。假设您请求用户输入。程序停止,然后等待用户输入。如果用户从不输入怎么办?程序永远不会前进。拥有多个线程允许您在等待用户输入的同时在后台执行操作。它还允许您将工作划分为多个同时进行的方法,以利用多个核心的优势,尽管如果没有适当的算法来划分工作,您将不会给自己带来多少好处。

How to start a thread in Java

Q2 'try‘/ 'catch’是如何工作的?

在Java和许多其他语言中,try and catch是您处理通常认为可以恢复的可能错误的方式。例如,如果你问一个用户一个数字,他可能会给你一个字母,因此你不会问他一个数字,而是试着问他一个数字。如果用户犯了错误,你可以捕捉到他的错误,然后进行追索。这不仅仅适用于用户输入,假设您打开了一个文件,但该文件不存在,或者发生了导致读取操作失败的其他错误。这种可能性需要你去尝试,而不是直接去做。

How to use try/catch

Q3有什么例外?

异常是方法在出现问题时抛出的东西。在Java中有两种类型的异常,已检查的和未检查的。大多数未检查的异常都是由于程序员的错误造成的,比如数组越界。然而,常见的异常,比如试图打开一个文件,但因为它不存在而无法打开,这些异常被称为检查异常,这意味着您必须用try catch将它们括起来,这对于Java来说是非常独特的。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23146591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档