运行后这样的异常一般是什么错误?帮忙看看好么?

jyf7356759 2008-03-06 09:43:14
运行了一半,控制台抛出这种异常,然后程序终止了。
Exception in thread "main" java.lang.NullPointerException
at SimpleAccess.getGoodLinks(SimpleAccess.java:27)
at SimpleAccess.urlList(SimpleAccess.java:18)
at SimpleAccess.main(SimpleAccess.java:60)
请问这个是什么样的错误?我的程序没有用线程,是不是要用线程呢?
还有请问高手,到底线程起的是一个什么样的作用,能解释下么?
...全文
71 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shili150 2008-03-06
  • 打赏
  • 举报
回复
一般报java.lang.NullPointerException的原因有以下几种:
1字符串变量未初始化;
2接口类型的对象没有用具体的类初始化,比如:
List lt;会报错
List lt = new ArrayList();则不会报错了
3当一个对象的值为空时,你没有判断为空的情况。
你可以试着把下面的代码前加一行代码:
if(rb!=null && rb!="")
改成:
if(rb==null);
if(rb!==null&&rb!="")
jyf7356759 2008-03-06
  • 打赏
  • 举报
回复
问题暂时解决了
(connection.getContentType()!=null) &&
connection.getContentType().toLowerCase().contains("html")
这样改了下,确实是对象null的问题,谢谢了。现在继续测试中..
jyf7356759 2008-03-06
  • 打赏
  • 举报
回复
好的,我把整个程序贴出来,帮我看看把,谢谢了。

import java.net.*;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.io.*;

import javax.swing.SwingUtilities;


public class SimpleAccess {

public static ArrayList gl = new ArrayList();

public static ArrayList line = new ArrayList();

public static void urlList(String url) throws Exception {
if (!gl.contains(url)) {
gl.add(url);
for (int i = 0; i < gl.size(); i++) {
getGoodLinks((String) gl.get(i));
}
}
}



public static void getGoodLinks(String str) throws Exception {
URL myURL = new URL(str);
URLConnection connection = myURL.openConnection();

if (connection.getContentType().toLowerCase().contains("html")) {
System.out.println("type is html");
System.out.println(str);
BufferedReader in = new BufferedReader(new InputStreamReader(myURL
.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
Pattern p = Pattern.compile("(.*href=?[\"])(.*?)([\"].*)");
Matcher m = p.matcher(inputLine);
while (m.find()) {
URL u = new URL(myURL, m.group(2));
if (!gl.contains(u.toString())) {
gl.add(u.toString());
}
}
}
in.close();

}
}

public int getSize() {
return gl.size();
}

public static void main(String[] args) throws Exception {
SimpleAccess sa = new SimpleAccess();
urlList("http://www.csdn.com");
for (int i = 0; i < gl.size(); i++) {
System.out.println(gl.get(i));
}
System.out.println("finished");
int a = sa.getSize();
System.out.println(a);
}

}

这个程序是输入一个网页地址,比如http://www.csdn.com,然后找这个网页下面所有的超连接,包括超连接网页的超连接,但是要是html文件。
我用print把在搜索的网页打了出来,但是很奇怪,运行的好好的,突然就报这个错。
不知道怎么解决了。
紧急求助!谢谢大家!
ZHOUJIAOSHOU 2008-03-06
  • 打赏
  • 举报
回复
提示的是空指针异常,这种问题有时候是"mian"方法写的不正确,有时是没有给程序权限,问题的原因多了去了,建议把出错的程序粘上来,看看程序再说
rayt_1982 2008-03-06
  • 打赏
  • 举报
回复
有对象为空了
jyf7356759 2008-03-06
  • 打赏
  • 举报
回复
继续求助,遇到这种问题怎么办呢..感觉很没头绪,程序运行的好好的,突然就有这个异常。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧