我建了一个类,放在src下。

ruhong1 2015-08-29 08:31:23
他就是不能用。
我得移到某个目录下,才能用,这是什么道理。
在myedipse时,他是没有提示出错的。
运行的时候,才出错。
还有这个类前面的 package 语句是什么作用,是
自己加进去的吗?还是自动生成的。
用惯了.net 的ide,用myedipse,这才发现,这调试错误真的是浪费了太多时间,
微软不管怎么说,还是强大。
...全文
210 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ant_Shen 2015-08-30
  • 打赏
  • 举报
回复
有红线,就说明有可检测异常,把光标放在红线的位置按ctrl + 1会出现异常处理的方法。 根据楼主的意思,应该是没有进行异常处理,你查一下java的异常处理方法吧
forDream_ 2015-08-30
  • 打赏
  • 举报
回复
引用 8 楼 ruhong1 的回复:
这就是我头疼的地方,在jsp中一切都是好的,运行起来,也读了数据库得了结果。 同样的东西放到src下,准备做一个类,他就提示找不到类。Class.forName,读取sql server 驱动,没有道理,在jsp中,能读到, 在src中读不到啊。
你还是没懂我说的意思,编译时刻,程序并不知道你要加载的类是否存在,但是其有可能会找不到,因此其抛出一个checked exception,要求你对这个类型的异常做检查。但并不是说一定找不到。如果你依旧不理解,请自行google、百度checked exception/unchecked exception区别。
ruhong1 2015-08-29
  • 打赏
  • 举报
回复
查了一下,大概就是这个Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")中的参数不对。 那么如果我在根目录的jsp中引用这个路径是对的,那么我在类的目录下,如何引用?
ruhong1 2015-08-29
  • 打赏
  • 举报
回复
这就是我头疼的地方,在jsp中一切都是好的,运行起来,也读了数据库得了结果。 同样的东西放到src下,准备做一个类,他就提示找不到类。Class.forName,读取sql server 驱动,没有道理,在jsp中,能读到, 在src中读不到啊。
forDream_ 2015-08-29
  • 打赏
  • 举报
回复
引用 6 楼 ruhong1 的回复:
[quote=引用 5 楼 gam2046 的回复:] [quote=引用 4 楼 ruhong1 的回复:] [quote=引用 3 楼 gam2046 的回复:] [quote=引用 2 楼 ruhong1 的回复:] 和vs相比实在是差太多了。 我建一个jsp文件, 执行Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"),就没问题。 我作一个类,里面放上这个Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"), 他就出错。我都搞不明白啥原因。
你的思维是面向过程的思维方式。同样你写一句话,用.net,新建一个cs文件,直接放进去也是不能运行的。只不过Visual Studio帮你做了很多工作,namespace/class stub等等。也正是因为你之前的经验很多都是工具帮你做了,很多基础性的原理你并不知道,才出现这样的问题。[/quote] 这本来就是ide应该做的事情啊。 我在类中Class.forName(driverName),他就出现了一个红色的下划线,未处理的异常类型,在jsp中就没有问题。 [/quote] 不存在什么应该不应该,存在即合理。因为我们没有能力去改变,那就只能我们去适应它 至于你说的问题,其实JSP并不能被执行,其本身会被Servlet容器转换成Servlet,然后再被执行,最终被输出。 我记的不是很清楚了,好像转换成Servlet后是默认throws Exception的。正因为如此,你在JSP中并没有提示未捕获的异常。[/quote] 我在jsp中运行,他是没有问题的。但是我打算做成一个类,他就提示未处理的异常类型, 就是百度的那个简单的连接sql server的例子。 现在提示错误,我不知道是我写得错,还是导入错,还是没有用try处理异常,出错。 [/quote] Java中(其实不止Java,其他很多语言,但不包括C#等,C#不要求显式捕获异常)将异常分为两大类,checked exception / unchecked exception。 从字面上就比较好理解,所谓checked,即程序无法预知的exception,例如程序期望用户输入一个数字,但是用户输入了字母;亦或是程序期望打开一个文件,但是文件不存在或权限不够,无法打开等等。这一类异常是需要程序进行相应处理的(即checked),例如,用户输入了字母应该告知用户重新输入数字。而处理这一类的异常有两种方式: 第一种,通过try catch块,捕获相应的异常进行处理(如提示用户应该输入数字) 第二种,将异常抛出,丢给其调用者处理,而其调用者可以自己捕获异常并处理,也可以继续抛出,丢给它的调用者。直至一直抛出到JVM,JVM的一定会捕获该异常并处理。JVM的处理方式就是输出异常信息并终止程序运行。 unchecked exception通常而言是程序的逻辑异常,这一类异常不要求程序显式try catch去处理它或将其抛出。 在你的情况中,Class.forName会抛出ClassNotFound异常(我记得是这个类型,而且好像还不止这一个),即你要求加载的类可能是不存在,导致加载失败。在这种情况下,程序显然不应该继续执行,你需要做的就是捕获相应的异常并处理即可。
ruhong1 2015-08-29
  • 打赏
  • 举报
回复
引用 5 楼 gam2046 的回复:
[quote=引用 4 楼 ruhong1 的回复:] [quote=引用 3 楼 gam2046 的回复:] [quote=引用 2 楼 ruhong1 的回复:] 和vs相比实在是差太多了。 我建一个jsp文件, 执行Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"),就没问题。 我作一个类,里面放上这个Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"), 他就出错。我都搞不明白啥原因。
你的思维是面向过程的思维方式。同样你写一句话,用.net,新建一个cs文件,直接放进去也是不能运行的。只不过Visual Studio帮你做了很多工作,namespace/class stub等等。也正是因为你之前的经验很多都是工具帮你做了,很多基础性的原理你并不知道,才出现这样的问题。[/quote] 这本来就是ide应该做的事情啊。 我在类中Class.forName(driverName),他就出现了一个红色的下划线,未处理的异常类型,在jsp中就没有问题。 [/quote] 不存在什么应该不应该,存在即合理。因为我们没有能力去改变,那就只能我们去适应它 至于你说的问题,其实JSP并不能被执行,其本身会被Servlet容器转换成Servlet,然后再被执行,最终被输出。 我记的不是很清楚了,好像转换成Servlet后是默认throws Exception的。正因为如此,你在JSP中并没有提示未捕获的异常。[/quote] 我在jsp中运行,他是没有问题的。但是我打算做成一个类,他就提示未处理的异常类型, 就是百度的那个简单的连接sql server的例子。 现在提示错误,我不知道是我写得错,还是导入错,还是没有用try处理异常,出错。
forDream_ 2015-08-29
  • 打赏
  • 举报
回复
引用 4 楼 ruhong1 的回复:
[quote=引用 3 楼 gam2046 的回复:] [quote=引用 2 楼 ruhong1 的回复:] 和vs相比实在是差太多了。 我建一个jsp文件, 执行Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"),就没问题。 我作一个类,里面放上这个Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"), 他就出错。我都搞不明白啥原因。
你的思维是面向过程的思维方式。同样你写一句话,用.net,新建一个cs文件,直接放进去也是不能运行的。只不过Visual Studio帮你做了很多工作,namespace/class stub等等。也正是因为你之前的经验很多都是工具帮你做了,很多基础性的原理你并不知道,才出现这样的问题。[/quote] 这本来就是ide应该做的事情啊。 我在类中Class.forName(driverName),他就出现了一个红色的下划线,未处理的异常类型,在jsp中就没有问题。 [/quote] 不存在什么应该不应该,存在即合理。因为我们没有能力去改变,那就只能我们去适应它 至于你说的问题,其实JSP并不能被执行,其本身会被Servlet容器转换成Servlet,然后再被执行,最终被输出。 我记的不是很清楚了,好像转换成Servlet后是默认throws Exception的。正因为如此,你在JSP中并没有提示未捕获的异常。
ruhong1 2015-08-29
  • 打赏
  • 举报
回复
引用 3 楼 gam2046 的回复:
[quote=引用 2 楼 ruhong1 的回复:] 和vs相比实在是差太多了。 我建一个jsp文件, 执行Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"),就没问题。 我作一个类,里面放上这个Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"), 他就出错。我都搞不明白啥原因。
你的思维是面向过程的思维方式。同样你写一句话,用.net,新建一个cs文件,直接放进去也是不能运行的。只不过Visual Studio帮你做了很多工作,namespace/class stub等等。也正是因为你之前的经验很多都是工具帮你做了,很多基础性的原理你并不知道,才出现这样的问题。[/quote] 这本来就是ide应该做的事情啊。 我在类中Class.forName(driverName),他就出现了一个红色的下划线,未处理的异常类型,在jsp中就没有问题。
forDream_ 2015-08-29
  • 打赏
  • 举报
回复
引用 2 楼 ruhong1 的回复:
和vs相比实在是差太多了。 我建一个jsp文件, 执行Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"),就没问题。 我作一个类,里面放上这个Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"), 他就出错。我都搞不明白啥原因。
你的思维是面向过程的思维方式。同样你写一句话,用.net,新建一个cs文件,直接放进去也是不能运行的。只不过Visual Studio帮你做了很多工作,namespace/class stub等等。也正是因为你之前的经验很多都是工具帮你做了,很多基础性的原理你并不知道,才出现这样的问题。
ruhong1 2015-08-29
  • 打赏
  • 举报
回复
和vs相比实在是差太多了。 我建一个jsp文件, 执行Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"),就没问题。 我作一个类,里面放上这个Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"), 他就出错。我都搞不明白啥原因。
code小生 2015-08-29
  • 打赏
  • 举报
回复
找个教程看看,就会了,Myeclipse很好用的。

50,639

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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