当前位置: 首页 > news >正文

深圳大眼睛网站建设北海哪家公司做网站建设研发

深圳大眼睛网站建设,北海哪家公司做网站建设研发,网站建设使用的什么软件有哪些内容,湖南省做网站的在java多线程程序中#xff0c;所有线程都不允许抛出未捕获的checked exception#xff0c;也就是说各个线程需要自己把自己的checked exception处理掉。这一点是通过java.lang.Runnable.run()方法声明(因为此方法声明上没有throws exception部分)进行了约束。但是线程依然有…      在java多线程程序中所有线程都不允许抛出未捕获的checked exception也就是说各个线程需要自己把自己的checked exception处理掉。这一点是通过java.lang.Runnable.run()方法声明(因为此方法声明上没有throws exception部分)进行了约束。但是线程依然有可能抛出unchecked exception当此类异常跑抛出时线程就会终结而对于主线程和其他线程完全不受影响且完全感知不到某个线程抛出的异常(也是说完全无法catch到这个异常)。JVM的这种设计源自于这样一种理念“线程是独立执行的代码片断线程的问题应该由线程自己来解决而不要委托到外部。”基于这样的设计理念在Java中线程方法的异常无论是checked还是unchecked exception都应该在线程代码边界之内run方法内进行try catch并处理掉. public class ExeceptionThread implements Runnable {Overridepublic void run() {throw new RuntimeException();}public static void main(String[] args) {try {ExecutorService exec Executors.newCachedThreadPool();exec.execute(new ExeceptionThread());} catch (Exception e) { //捕获不了System.out.println(exeception has handled);}} } Exception in thread pool-1-thread-1 java.lang.RuntimeExceptionat Thread.Exection.ExeceptionThread.run(ExeceptionThread.java:10)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)at java.lang.Thread.run(Unknown Source)         但如果线程确实没有自己try catch某个unchecked exception而我们又想在线程代码边界之外run方法之外来捕获和处理这个异常的话java为我们提供了一种线程内发生异常时能够在线程代码边界之外处理异常的回调机制即Thread对象提供的setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)方法。       通过该方法给某个thread设置一个UncaughtExceptionHandler可以确保在该线程出现异常时能通过回调UncaughtExceptionHandler接口的public void uncaughtException(Thread t, Throwable e) 方法来处理异常这样的好处或者说目的是可以在线程代码边界之外Thread的run()方法之外有一个地方能处理未捕获异常。但是要特别明确的是虽然是在回调方法中处理异常但这个回调方法在执行时依然还在抛出异常的这个线程中另外还要特别说明一点如果线程是通过线程池创建线程异常发生时UncaughtExceptionHandler接口不一定会立即回调。 class ExceptionThread2 implements Runnable {public void run() {Thread t Thread.currentThread();System.out.println(run() by t);System.out.println(eh t.getUncaughtExceptionHandler());throw new RuntimeException();} }class MyUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {Overridepublic void uncaughtException(Thread t, Throwable e) {System.out.println(caught e);} }class HandlerThreadFactory implements ThreadFactory {Overridepublic Thread newThread(Runnable r) {System.out.println(this creating new Thread);Thread t new Thread(r);System.out.println(created t ID: t.getId());t.setUncaughtExceptionHandler(new MyUncaughtExceptionHandler());System.out.println(eh t.getUncaughtExceptionHandler());return t;} }public class CaptureUncaughtException {public static void main(String[] args) {ExecutorService exec Executors.newCachedThreadPool(new HandlerThreadFactory());exec.execute(new ExceptionThread2());} } Thread.Exection.HandlerThreadFactory4e25154f creating new Thread created Thread[Thread-0,5,main] ID:9 ehThread.Exection.MyUncaughtExceptionHandler70dea4e run() by Thread[Thread-0,5,main] ehThread.Exection.MyUncaughtExceptionHandler70dea4e Thread.Exection.HandlerThreadFactory4e25154f creating new Thread created Thread[Thread-1,5,main] ID:11 ehThread.Exection.MyUncaughtExceptionHandler193fa958 caught java.lang.RuntimeException 默认方式 public class SettingDefaultHandler {public static void main(String[] args) {Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler());//线程默认异常捕获器类ExecutorService execExecutors.newCachedThreadPool();exec.execute(new ExceptionThread2());} } run() by Thread[pool-1-thread-1,5,main] ehjava.lang.ThreadGroup[namemain,maxpri10] caught java.lang.RuntimeException         比之上述方法还有一种编程上的处理方式可以借鉴即有时候主线程的调用方可能只是想知道子线程执行过程中发生过哪些异常而不一定会处理或是立即处理那么发起子线程的方法可以把子线程抛出的异常实例收集起来作为一个Exception的List返回给调用方由调用方来根据异常情况决定如何应对。不过要特别注意的是此时子线程早以终结。       Java thread里面关于异常的部分比较奇特。一般在线程里碰到checked exception推荐的做法是采用try/catch块来处理。而对于unchecked exception比较合理的方式是注册一个实现UncaughtExceptionHandler接口的对象实例来处理。       参考http://www.cnblogs.com/zhuawang/p/3751875.html               http://blog.csdn.net/bluishglc/article/details/8216824转载于:https://www.cnblogs.com/onlysun/p/4601430.html
http://www.yutouwan.com/news/472779/

相关文章:

  • 做帮助手册的网站做软件难吗
  • 用wordpress作下载站点网上申请注册公司网址
  • 怎么制作一个网站教程上海品牌策划公司有哪些
  • 城乡住房和城乡建设部网站首页大足建网站的
  • 打开一张图片后点击跳转到网站怎么做的学做美食视频在哪个网站
  • .帮别人做网站专门做排行榜的软件
  • 沈阳网页模板建站医院网站备案
  • 江苏盐城网站建设苏州哪家网站建设
  • 服装公众号的手机网站怎么做温州网页建站模板
  • 灯饰网站建设软件开发合同书范本
  • 做网站怎么选取关键词做自媒体的有哪些素材网站
  • 网站集约化建设困难春节网站怎么做
  • 网站推广页面 英语网站开发的初级技术员
  • vue做视频网站应用公园官网登录
  • 广州商城网站制作网站郴州市建设局网站
  • 一线城市网站建设费用高简单网页源代码
  • 网站建设手机网站wordpress插件启用
  • 宜兴建设局官方网站成都网站建设58
  • 英文网站流量统计怎样把自己的网站做推广
  • 网站开发所需费用明细廉洁 网站建设
  • 大型门户网站建设是什么网站建设提议
  • 附近的网站设计开发凡科做网站好吗
  • 河南中原建设公司网站网站死链排查
  • 网站建设要注意哪些郑州建设厅官方网站
  • 重庆网站seo费用互联网保险图片
  • 旅游小网站怎样做精不做全合肥设计网站
  • 网站后台开发教程国家重大项目建设库网站
  • 一般做一个网站多少钱建行深圳网站
  • 高端网站设计高端网站制作国际摄影作品网站
  • 建筑类专业做教育的网站深圳网络推广网站