小编Sha*_*ded的帖子

多次或单次尝试捕获

我正在努力清理我的一些代码,然后我发现我不确定哪条路线会更好.

目前我在我的大多数方法上都有一个try catch块,它最后处理了一些单独的异常,但我认为有更多尝试catch块会更好的维护.但是,在分解代码的过程中,我遇到了为同一类型的异常编写多个块的问题.我可以看到为每个部分编写一个块的好处,因为我可以更详细地说明它失败的原因.

我的问题是......这样做有不利之处吗?我有没有看到性能问题或其他隐藏的怪物?

此外,在方法中处理多个异常的首选方法是什么?是否有行业标准?

为了更好地说明我的观点,这里有一些伪代码

//multiple try catch for same exception
try {
     //some code here
} catch (MyException e) {
     //specific error message here
}
try {
     //some different code here
} catch (MyException e) {
     //more specific error message indicating a different issue
}
Run Code Online (Sandbox Code Playgroud)

java coding-style exception-handling

52
推荐指数
2
解决办法
7万
查看次数

Intellij 12 - 无法重新导入模块

所以今天我遇到了一个奇怪的问题.我在IntelliJ中的一个模块遇到了一些问题,所以我决定尝试将它吹出来并从一个新的结账重建它.我从项目窗口中删除了该模块,然后从我的文件系统中删除/重新下载.

我回到Intellij并尝试导入模块.它让我完成了选择选项的正常步骤,然后似乎成功了.只有它没有重新出现在我的项目窗口中.

我不确定我做了什么,但重建整个项目不是一个选择.我希望有人可以透露Intellij为什么对我生气.

系统规格:Mac OSX Mountain Lion IntelliJ 12.1.4

module intellij-idea

27
推荐指数
5
解决办法
1万
查看次数

如何选择列作为行?

所以,我一直在寻找,我发现了与我的问题相似的东西,但我需要更多的帮助来获得真正的解决方案.

我正在尝试构造一个返回2列数据的查询,第一列应该是列名本身的列表,第二列应该是该列的值.

在视觉上它看起来像这样

Column1      Column2
-------      -------
columnA      value_of_columnA
columnB      value_of_columnB
...          ...
Run Code Online (Sandbox Code Playgroud)

我很确定这需要动态SQL来实现,但我不知道如何开始创建查询.

任何帮助表示赞赏!

sql t-sql sql-server dynamic-sql

10
推荐指数
1
解决办法
3万
查看次数

多个Hibernate配置

我正在构建一个库来模块化我的一些代码,我遇到了Hibernate的问题.

在我的主应用程序中,我有一个hibernate配置来获取它需要运行的信息但是我还需要在我的库中使用hibernate,因为我想要的一些对象可以在其他应用程序中使用.

当我启动我的tomcat服务器时,同时设置了两个hibernates,我收到错误,指出bean无法解析,并且我的查询中缺少一个说明我的位置参数的错误.但是,当我只使用应用程序Hibernate配置启动Tomcat时,它启动正常.

这是配置的样子......

从图书馆:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>


<session-factory>   
    <mapping resource="blah.hbm.xml"/>
    <mapping resource="blargh.hbm.xml"/>
    <mapping resource="stuff.hbm.xml"/>
    <mapping resource="junk.hbm.xml"/>
    <mapping resource="this.hbm.xml"/>
</session-factory>

</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

从应用程序:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>


<session-factory>       

    <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>

    <!-- Enable the query cache  -->
    <property name="hibernate.cache.use_query_cache">true</property>

    <!-- Echo all executed SQL to stdout -->
    <property name="show_sql">false</property>

    <!-- mapping files -->

    <mapping resource="appStuff"/>
    <mapping resource="appBlah"/>
    <mapping resource="appBlargh"/>
    <mapping resource="appJunk"/>
    <mapping resource="appThis"/>    

</session-factory>

</hibernate-configuration> …
Run Code Online (Sandbox Code Playgroud)

java hibernate

8
推荐指数
1
解决办法
1万
查看次数

Ruby on rails:带事件的日历

我想创建一个可以按月显示的默认日历.默认情况下,日历包含计划的年度事件.我将在每个用户的个人资料中显示此日历.现在,用户可以查看日历上的事件,用户应该能够通过单击日历中的事件将事件标记为出席或不出席.有没有可以提供帮助的宝石或插件

到目前为止,我发现:

https://github.com/elevation/event_calendar

https://github.com/topfunky/calendar_helper

calendar ruby-on-rails ruby-on-rails-plugins ruby-on-rails-3

7
推荐指数
1
解决办法
2万
查看次数

从抽象基类返回子类的对象

我有一些想要序列化(反序列化)的类。我不希望代码出现在每个类中,所以我想我会创建这样的子类

public class Swan extends Animal {}
Run Code Online (Sandbox Code Playgroud)

和这样的基类:

public abstract class Animal {
   protected String name;
   // ...


   public void saveAnimal(String filename) {
       //ObjectOutputStream, save name...
   }

   public static /*returntype*/ loadAnimal(String filename) {
       //ObjectInputStream...
   }
}
Run Code Online (Sandbox Code Playgroud)

基本上我希望这个工作:

Swan s1 = new Swan("name");
s1.saveAnimal("/pathToSaveFile");
Swan s2 = (Swan)loadAnimal("/pathToSaveFile") OR 
Swan s2 = loadAnimal("/pathToSaveFile")
Run Code Online (Sandbox Code Playgroud)

如果 Animal 是抽象的,我该怎么做?如果该方法如下所示:

public static <T extends Animal> T loadAnimal(String filename) {
    //loadFromFile
    }
Run Code Online (Sandbox Code Playgroud)

我无法返回new T(name) //parameter cannot be instantiated directly。我读了一些有关反射的内容,但无法获取泛型类型 T 的类。解决方法是将类型的类传递给构造函数,但 Animal 应该是抽象的。

java abstract-class

6
推荐指数
1
解决办法
5407
查看次数

有效地从java中的大型数组中删除重复的字符串?

我正在考虑从(未排序的)字符串数组中删除重复项的最佳方法 - 该数组包含数百万或数千万字符串.数组已经预先填充,因此优化目标只是删除重复而不是防止重复从最初填充!!

我正在考虑进行排序然后二元搜索以获得log(n)搜索而不是n(线性)搜索.这将给我nlogn + n次搜索,这些搜索除了未排序(n ^ 2)之外的搜索效果更好,但这似乎仍然很慢.(还考虑了散列但不确定吞吐量)

请帮忙!寻找一种解决速度和内存的高效解决方案,因为在不使用Collections API的情况下涉及数百万字符串!

java

5
推荐指数
2
解决办法
3831
查看次数

RestEasy可以根据查询参数选择方法吗?

我开始使用 RestEasy,但遇到了一个我似乎无法找到答案的问题。如果我有 2 个方法都解析为相同的路径(在本例中为 /path1/path2/path3),但它们都有不同数量的查询参数,RestEasy 是否能够确定使用哪个方法?

@GET
@NoCache
@Produces({
    MediaType.APPLICATION_JSON
})
@Path("/path1/path2/{path3}")
public String getResults1(
        @PathParam("path3") String path3,
        @QueryParam("query1") @DefaultValue("") String query1,
        @QueryParam("query2") String query2,
        @QueryParam("query3") @DefaultValue("25") int query3) {
    ...
}

@GET
@NoCache
@Produces({
    MediaType.APPLICATION_JSON
})
@Path("/path1/path2/{path3}")
public String getResults2(
        @PathParam("path3") String path3,
        @QueryParam("query1") @DefaultValue("") String query1,
        @QueryParam("query2") @DefaultValue("5") Integer query2) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我已经做了一些测试,昨天似乎一切都运行良好,并且它可以选择正确的路径,但现在我开始看到它每次都走错误的路径。

这是应该处理的事情,还是我应该把它吸收并放入一种方法中并自己进行检查?

java resteasy query-string

5
推荐指数
1
解决办法
4163
查看次数

有没有办法覆盖Mongodb中的默认功能?

所以我想做的是使findOne工作更像在Meteor中,但要通过Mongo shell。简而言之,我希望能够执行类似的操作db.collection.findOne("thisIsAnId")并在该集合中查找该ID。

我尝试加载包含此文件的文件...

db.collection.findOne = function(query, fields, options){
    if(typeof query === "string") {
        return db.collection.originalFindOne({_id : query}, fields, options);
    }

    return db.collection.originalFindOne(query, fields, options); 
}
Run Code Online (Sandbox Code Playgroud)

originalFindOne仅在哪里链接到default findOne,这根本不起作用。因此,在没有办法找到覆盖默认函数的方法之后,我想也许我可以创建一个新的函数,诸如此类db.collection.simpleFindOne(),但是我找不到一种将其附加到mongo shell的方法,以便任何集合都可以使用它。 。

任何人都对mongo内部工作原理有一些见识,可以给我一些帮助吗?

mongodb mongo-shell

5
推荐指数
1
解决办法
449
查看次数

尝试捕捉或检查长度?

我只是想知道哪个会更便宜,使用try catch块来索引越界或检查多维数组的长度并比较值?

我觉得这是长度,因为我可以将长度存储在一个变量中然后只是做相对便宜的if.我只是不确定try-catch有多贵.

谢谢!

c# try-catch

4
推荐指数
2
解决办法
1557
查看次数