对象-为什么我这段代码CATCH不到错误?

问题描述

为什么我这段代码CATCH不到错误?
if (cb1.isSelected()) {
            String charteredTo = (t6.getText());
            try {
                CharterFlight cf = new CharterFlight(num, origin, destination, length, time, charteredTo);
                schedule.addFlight(cf);
            } catch (StringIndexOutOfBoundsException err) {
                System.out.println("fuck");
            }
            t1.setText("");
            t2.setText("");
            t3.setText("");
            t4.setText("");
            t5.setText("");
            t6.setText("");
        } else {
            int seats = Integer.parseInt(t7.getText());
            try {
                PassengerFlight pf = new PassengerFlight(num, origin, destination, length, time, seats);
                schedule.addFlight(pf);
            } catch (StringIndexOutOfBoundsException err) {
                System.out.println("fuck");
            }

我这段代码的目的是,代码根据用户在GUI输入的内容,创建对象失败的话,便运行CATCH里面的代码.系统输出确实是StringIndexOutOfBoundsException错误,但是CATCH里面的代码好像没有成功运行.为什么啊?

解决方案

StringIndexOutOfBoundsException
先修改为Exception,输出下err看到底什么类型

解决方案二:

String是可变字符串长度,也就是说是无限制长度,无论你放多少字符进去都不可能下标溢出,那么问题就来了,为什么你会在控制台看到红色代码呢?我想可能是抛出的是那个异常的的父类或子类,要不就是幻觉~

解决方案三:

你通过控制台报错信息,看一看报错具体在哪个类里边,schedule.addFlight(cf);你catch的是这个方法,但是这个方法如果没有throws Exception,
那么你在这里是捕获不到异常的。你可以给addFlight()这个方法加上throws Exception,或者将try{}catch()放到这个方法内部,然后再试试。

解决方案四:

首先你catch的异常类型,就不是你在控制台看到的异常类型,不是Catch括号内的异常类型,它为什么要catch呢?

时间: 2024-11-03 14:27:40

对象-为什么我这段代码CATCH不到错误?的相关文章

对象-java 抽象类有段代码没看懂!!!帮忙解释下

问题描述 java 抽象类有段代码没看懂!!!帮忙解释下 自己看视频自学到网络编程,发现下边的代码看不懂,自己也百度了很多,还是没理解好抽象类 OutputStream os=Socket.getOutputSteam(); os.write("加油".getBytes()): 这段代码没看懂,OutputStream抽象类不能直接创建对象,也没有子类去实现,为什么可以直接调用write(byte[] b) 方法? 解决方案 不能创建对象的意思是不能通过new outputstream

java中下面这段代码怎么理解?

问题描述 java中下面这段代码怎么理解? class Connection { private static int count = 0; private int i = 0; private Connection() { System.out.println("Connection()");} // Allow creation via static method: static Connection makeConnection() { count++; return new C

new-关于对象调用问题,求大师解说下这段代码

问题描述 关于对象调用问题,求大师解说下这段代码 public class Test2 { int i = 0; Test2(int i) { this.i = i; } Test2 increament() { i++; return this; } void print() { System.out.println("i = " + i); } public static void main(String[] args) { Test2 t = new Test2(100); t.

java 某个类的几个对象,这些对象调用类中一个函数,是各自拥有自己的函数代码还是使用同一段代码?

问题描述 1.java 某个类的几个对象,这些对象调用类中一个函数(普通的函数),是各自拥有自己的函数代码还是使用同一段代码?2.java 继承中,子类从父类得到一些普通函数,这些函数的代码,是子类自己独自拥有一份还是和父类使用同一段函数代码.3.第一次发帖,积分什么的不会搞,貌似自己也没有积分,呵呵,大家包涵! 解决方案 引用1.java 某个类的几个对象,这些对象调用类中一个函数(普通的函数),是各自拥有自己的函数代码还是使用同一段代码?这几个对象调用的当然是同一段代码了.jvm中有一个ja

c++-为什么这段代码中对象rectangle的各个成员函数输出的值是对的,而box的却都是错的

问题描述 为什么这段代码中对象rectangle的各个成员函数输出的值是对的,而box的却都是错的 #include using namespace std; class rectangle { protected: double length,width,l,w; public: void setlength(); void getlength(); void setwidth(); void getwidth(); double area(); double perimeter(); dou

线程-java中下面这段代码是一个匿名对象传入一个匿名对象在调用start方法吗

问题描述 java中下面这段代码是一个匿名对象传入一个匿名对象在调用start方法吗 new Thread(new Runnable() {.....省略代码若干..........}).start(); 上面这段代码是一个匿名对象传入一个匿名对象在调用start方法吗 还是一个匿名类传入一个匿名对象再调用start方法 我有点分不清匿名对象和匿名类呢 解决方案 new Runnable() {.....省略代码若干..........} 匿名类,因为Runnable是接口,需要实现类 new

对象-大神时间到了~下面这段代码每一个函数和里边的方法都什么意思,用来干嘛的?谁能说得详细~虚心求教

问题描述 大神时间到了~下面这段代码每一个函数和里边的方法都什么意思,用来干嘛的?谁能说得详细~虚心求教 大神时间到了~下面这段代码每一个函数和里边的方法都是什么意思,用来干嘛的?谁能说得详细~绝对是虚心求教 package com.sysgrrj.module.QTCSSZ.action; import com.sysgrrj.core.action.BaseAction; import com.sysgrrj.core.iservice.ICoreService; import com.sy

string-Android怎么把String转换成对象 给个网址或一段代码

问题描述 Android怎么把String转换成对象 给个网址或一段代码 Android怎么把String转换成对象 给个网址或一段代码 解决方案 方法1:采用 Object.toString()方法 请看下面的例子: Object object = getObject(); System.out.println(object.toString()); 注1 在这种使用方法中,因为java.lang.Object类里已有public方法.toString(),所以对任何严格意义上的java对象都

html-为什么在IE中运行这段代码会提示type为空或不是对象?为什么border属性会无法移除?

问题描述 为什么在IE中运行这段代码会提示type为空或不是对象?为什么border属性会无法移除? <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>example</title> <style type="text/css"> p{ border: thin solid black; background: g