首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从void返回一个字符串

从void返回一个字符串
EN

Stack Overflow用户
提问于 2016-04-25 19:25:03
回答 5查看 80关注 0票数 0

你好,我有一个编程任务,我必须使用他们给我们的函数,因为他们把它交给我们使用,我遇到的问题是这个函数必须是空的,并且我不允许使用System.out.println();所以我的问题是如何在不更改方法头或使用System.out.println()的情况下返回异常?

代码语言:javascript
运行
复制
public void deleteItem(String itemID){
    try {
        index = Change.indexOf(itemID);
        StockItems.remove(index);
        Change.remove(index);
    }
    catch (IndexOutOfBoundsException e) {
        System.out.println("ITEM " + itemID + " DOES NOT EXIST!");
    }
}
EN

回答 5

Stack Overflow用户

发布于 2016-04-25 19:27:17

您可以更改方法签名并引发异常

代码语言:javascript
运行
复制
public void deleteItem(String itemID) throws Exception{
    try {
        index = Change.indexOf(itemID);
        StockItems.remove(index);
        Change.remove(index);
    }catch (IndexOutOfBoundsException e) {
        Exception ex = new Exception("ITEM " + itemID + " DOES NOT EXIST!");
        throw ex;
    }
}

完成后,您会得到如下的错误消息

代码语言:javascript
运行
复制
try{
    xxx.deleteItem("your itemID");
}catch(Exception e){
    // You will read your "ITEM " + itemID + " DOES NOT EXIST!" here
    String yourErrorMessage = e.getMessage();
}
票数 0
EN

Stack Overflow用户

发布于 2016-04-25 19:28:52

代码语言:javascript
运行
复制
public void deleteItem(String itemID){
    try {
        index = Change.indexOf(itemID);
        StockItems.remove(index);
        Change.remove(index);
    }
    catch (IndexOutOfBoundsException e) {
        throw new IndexOutOfBoundsException( "ITEM " + itemID + " DOES NOT EXIST!");
    }
}


    public void deleteItem(String itemID)throws IndexOutOfBoundsException{

        index = Change.indexOf(itemID);
        StockItems.remove(index);
        Change.remove(index);

   } 

你不能返回异常。方法抛出异常,您可以使用上述方法的that.try关键字throw抛出方法中的异常

票数 0
EN

Stack Overflow用户

发布于 2016-04-25 19:30:25

在catch块中执行以下操作:

代码语言:javascript
运行
复制
catch (IndexOutOfBoundsException e) {
       throw new IndexOutOfBoundsException("ITEM " + itemID + " DOES NOT EXIST!");
}

您不需要向方法添加抛出声明,因为IndexOutOfBoundsException是一个RuntimeException。

在调用函数的任何地方,都可以添加catch块来读取错误消息,如下所示:

代码语言:javascript
运行
复制
catch (IndexOutOfBoundsException ex) {
      System.out.println(ex.getMessage());
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36839191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档