多线程抓取异常

下面这段代码  可以看出  run方法里面会抛出一个异常、我们在主方法里面进行抓取、但是大家可以复制去测试、这个抓取异常中的代码不会运行

也就是没有抓取到、

在线程里面的异常主程序是无法抓取的、

    public static void main(String[] args) {
        try {
            T01 t01 = new T01();
            t01.start();
        } catch (Exception e) {
            System.out.println(1);
        }

    }

}
class T01 extends Thread{

    @Override
    public void run() {
            System.out.println(1/0);
       }
    }

但是线程提供了抓取异常的方法

以下这个方法就可以在线程发生异常的时候抓取到、放在线程启动之前

 public static void main(String[] args) {
        try {
            T01 t01 = new T01();
           t01.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
                @Override
                public void uncaughtException(Thread t, Throwable e) {
                  System.out.println(t.getName());
                  System.out.println(e.getMessage());
                }
            });
            t01.start();
        } catch (Exception e) {
            System.out.println(1);
        }

    }

}
class T01 extends Thread{

    @Override
    public void run() {

            System.out.println(1/0);

       }
    }

原文地址:https://www.cnblogs.com/qq376324789/p/10481671.html

时间: 2024-10-08 20:00:14

多线程抓取异常的相关文章

PHP利用Curl实现多线程抓取网页和下载文件

PHP 利用 Curl  可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,然而因为php语言本身不支持多线程,所以开发爬虫程序效率并不高,一般采集 数据可以利用 PHPquery类来采集数据库,在此之外也可以用 Curl ,借助Curl 这个功能实现并发多线程的访问多个url地址以实现并发多线程抓取网页或者下载文件. 至于具体实现过程,请参考下面几个例子: 1.实现抓取多个URL并将内容写入指定的文件 $urls = array( '路径地址', '路径地址', '路径地址

数据挖掘_多线程抓取

在这一篇文章中,我们主要来介绍多线程抓取数据. 多线程是以并发的方式执行的,在这里要注意,Python的多线程程序只能运行在一个单核上以并发的方式运行,即便是多核的机器,所以说,使用多线程抓取可以极大地提高抓取效率 下面我们以requests为例介绍多线程抓取,然后在通过与单线程程序比较,体会多线程的效率的提高 这一次,我就不用我的网站做测试了,因为网站的内容此时还并不是太多,不能体现多线程的优势 我们通过当当网来测试我们的多线程实例,通过对搜索结果的同一抓取实现功能的演示,搜索模式地址如下 h

用Python多线程抓取并验证代理

因为工作的关系,我写过许多个抓取网站信息的程序. 最简单的,只要用Python的urllib2.urlopen()函数就可以了: 然后,有个网站喜欢封人,所以,得找一批代理,轮流抓它的信息: 有的网站不允许程序抓取,所以,就得加入一些头信息: 有的网站需要登录,这时就要用到Cookies: 最后,为了提高效率,最好是使用多线程.(PS,有个地方要注意,urlopen这个函数,设定了一个全局对象opener,所以如果你使用了多个线程, 每个线程使用一个代理,那么,不能使用urlopen这个函数,而

HttpWebRequest多线程抓取17Track的物流信息

公司的一个系统需要去抓17Track的物流信息,贴上代码有需要的朋友可以参考一下↓ //17Track的抓取地址以及开启的线程数量 <add key="url" value="http://www.17track.net/restapi/handlertrack.ashx"/> <add key="threadCount" value="3"/> //使用HttpWebRequest去请求private

简单的使用php多线程抓取网页

PHP 利用 Curl Functions 可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,受限于php语言本身不支持多线程,所以开发爬虫程序效率并不高,这时候往往需 要借助Curl Multi Functions 它可以实现并发多线程的访问多个url地址.既然 Curl Multi Function如此强大,能否用 Curl Multi Functions 来写并发多线程下载文件呢,当然可以,下面给出我的代码: <?php $urls = array( 'http://w

ABAP抓取异常的方法:try,endtry

学习:http://www.cnblogs.com/jiangzhengjun/p/4292428.html 说明: 异常处理机制可以有效避免 dump发生, 向上抛出异常 如果Form中出现了运行时错误,但Form签名又没有使用RAISING向上抛,则程序会直接挂掉,所以最好是向上抛 FORM subform RAISING cx_static_check cx_dynamic_check.... ENDFORM. :异常类是系统预先定义好的全局类或者是由用户自定义的局部或全局的类. 在sap

[Python爬虫] 之十:Selenium +phantomjs抓取活动行中会议活动(多线程抓取)

延续上个抓取活动行中会议活动的问题,上次使用是单线程的抓取,效率较低,现在使用多线程的抓取. 数据的抓取分为两个过程:首先获取每个关键字搜索结果对应的url和页数,保存在列表里面,这个过程用一个线程来实现(类似生产者),同时根据获取的关键字的url和页数,抓取对应的数据,这个过程用多线程来抓取(类似消费者) 这样整个抓取过程共用了144.366188 秒,采用单线程来进行抓取要用大概184秒,这样大概节省了40秒 具体代码如下: # coding=utf-8import osimport ref

python多线程抓取代理服务器

文章转载自:https://blog.linuxeye.com/410.html 代理服务器:http://www.proxy.com.ru 1 #coding: utf-8 2 3 import urllib2 4 import re 5 import time 6 import threading 7 import MySQLdb 8 9 rawProxyList = [] 10 checkedProxyList = [] 11 12 #抓取代理网站 13 targets = [] 14 f

多线程抓取豆瓣编程书籍(linux\windows都可运行)

首先创建两个队列,queue队列存储要爬的网址,out_queue存储的是要取内容的网页源代码. 创建线程类,ThreadUrl的作用是从给定的网址上抓取网页内容,并将内容存储在out_queue队列上,而DatamineThread的作用是从网页源代码中通过正则来取想要的内容. 这个代码在window下运行的话就需要将.decode('utf8')那句话前面的#删除就ok了,编码方式需要改一下. 如果想自己编写的话,使用queue的时候一定不要忘了调用task_done()函数,不然程序将一直