小编Max*_*mus的帖子

如何使用try/catch/finally C#高效地管理Stream

我最近与一位同事讨论过,他告诉我,我正在不经意地将一个流管理成一个try/catch/block.所以我想知道对你来说什么是好方法.

            try
            {
                StreamReader sr = new StreamReader("TestFile.txt");
                //After that, here an operation of about 30 seconds to fulfill;
            }
            catch (IOException ioex)
            {
                throw new IOException("An error occurred while processing the file.", ioex);
            }
            catch (Exception ex)
            {
                throw new Exception("An generic error ocurred.");
            }
            finally
            {
                if(sr != null){
                    stream.Close();
                    stream = null;
                }
            }
Run Code Online (Sandbox Code Playgroud)

他表示即使使用IOException,也不需要2个Exception.我们只能使用Exception.但我唯一想要的是识别产生异常的位置,因为在打开文件后,将执行大约30秒的操作.

那你会怎么想?我们看到了这个MS示例(http://msdn.microsoft.com/fr-Fr/library/system.io.streamreader.aspx)它更简单但是在性能或干净的代码方面,你发现了一些奇怪的东西?

请你的意见!

-编辑 - - - - - - - - -

好的,我看到了这一点,但我们正在讨论Catch IOException并仅使用Exception.在我看来,就像上面的例子一样,你可以知道错误发生在哪里; 在管理文件或打开文件后的过程中.那是我的第一个问题.现在,您如何看待下面的这一变化.

            try
            {
                using(StreamReader sr = …
Run Code Online (Sandbox Code Playgroud)

c# exception-handling exception try-catch stream

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

如何测试WebApi服务?

我是WebApi的新手,我一直在阅读有关它的信息,但我不知道如何启动我的应用程序.

我已经有了一个带有.Net 3.5的许多WFC服务的项目.所以,我将我的项目更新为4.5.1.然后我用Visual Studio 2012向导创建了一个控制器.然后,在创建控制器时,我将类视为带有get,post,put,delete方法的模板.所以我放置了post方法,最后我想用HttpClient测试服务.

我尝试从以下论坛应用绿色解决方案: 如何将xml值发布到web api?

我将收到一个带有Contract模型结构的XML字符串.

我将我的项目运行到Visual Studio Development Server中.

但我在测试我的服务时遇到了麻烦.

我看到许多页面,人们做这样的事情http:// localhost:port/api/contract.但我还不知道它是如何运作的.那么我该如何测试我的服务呢?我测试服务的路径或网址是什么?

c# asp.net rest asp.net-web-api visual-studio-2012

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

如何在WebApi中增加每个Controller的maxRequestLength

我从2012年开始在这里找到了同样的问题,但我想再次提出这个问题.

是否可以增加每个服务或控制器的maxRequestLength而不是更改Web.Config?

<system.web>
  <httpRuntime maxRequestLength="10240"/>
</system.web>
Run Code Online (Sandbox Code Playgroud)

如果它不能以编程方式,可以在Web.Config中完成,但它只能针对某些控制器?

c# asp.net web-config maxrequestlength asp.net-web-api

5
推荐指数
0
解决办法
3126
查看次数

加载数据后从Select2获取项目

我正在尝试强制打开方法并选择select2这样的项目.

    $(".select").select2('open')
    $(".select").on('select2-loaded', function (e) {
        items = e.items.results;
        if (items.length == 1) {
            $(this).val(items[0].text);
        }
    });
    $(".select").select2('close');
Run Code Online (Sandbox Code Playgroud)

但我无法进入select2加载的评估,并且关闭也发生在快速.如果列表中只有一个元素,我想默认选择第一个元素.

当"打开"发生时,它会自动执行机制来获取和加载列表中的所有元素.如果我评论close方法,则需要几毫秒来显示列表中的元素.

但我想要的是刷新我的列表(这是通过打开完成)然后我想只选择是否有一个元素和关闭我的列表('选择')

我怎样才能做到这一点?此行为将由另一个列表的onchange事件触发.(嵌套选择)

javascript jquery jquery-select2

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

从表中获取所有记录 - EclipseLink

我一直在尝试从 EclipseLink 中的表中获取所有行。

我使用 JPA 工具从 db 创建了我的实体。这是结果:

@Entity
@Table(name="employee", schema="hr")
@NamedQuery(name="Employee.findAll", query="SELECT e FROM Employee e")
public class Employee implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer id;

    private String name;

    public Employee() {
    }

    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

}
Run Code Online (Sandbox Code Playgroud)

我发现了很多页面,人们在其中创建 Query 对象来获取所有记录,但他们再次定义了这样的“选择”查询。

Query q …
Run Code Online (Sandbox Code Playgroud)

java postgresql jpa eclipselink

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

未知版本的Tomcat被指定为8.0.24/Eclipse 4.4.2(Luna)

几个月前,我下载并解压缩了运行完美的tomcat 8.0.24.我做了一些在记事本中创建servlet的测试,用javac.exe编译并放在webapps中.有效.

我的Eclipse版本是4.4.2,称为Luna.

我的JRE版本是1.8.0_65(x64)

当我想在Eclipse中设置我的服务器时,我看到了这个警告,我不知道该怎么做.

Eclipse> Windows>首选项>服务器>运行时环境>添加 在此输入图像描述

在此输入图像描述

在此输入图像描述

java eclipse tomcat

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

如何在java中将UUID保存为二进制(16)

我有一个表TestTable,列ID为二进制(16),名称为varchar(50)

我一直在尝试将一个有序的UUID存储为PK,就像本文以优化的方式存储UUID一样

我看到UUID作为HEX(blob)保存在数据库中

所以我想从java中保存这个ID,但是我收到了这个错误

数据截断:第1行的列"ID"的数据太长

我目前正在使用库sql2o与mysql进行交互

所以基本上这是我的代码

String suuid = UUID.randomUUID().toString();
String partial_id = suuid.substring(14,18) + suuid.substring(9, 13) + suuid.substring(0, 8) + suuid.substring(19, 23) + suuid.substring(24)
String final_id = String.format("%040x", new BigInteger(1, partial_id.getBytes()));
con.createQuery("INSERT INTO TestTable(ID, Name) VALUES(:id, :name)")
        .addParameter("id", final_id)
        .addParameter("name", "test1").executeUpdate();
Run Code Online (Sandbox Code Playgroud)

部分ID应该是这样的11d8eebc58e0a7d796690800200c9a66

我在mysql中尝试了这个语句没有问题

insert into testtable(id, name) values(UNHEX(CONCAT(SUBSTR(uuid(), 15, 4),SUBSTR(uuid(), 10, 4),SUBSTR(uuid(), 1, 8),SUBSTR(uuid(), 20, 4),SUBSTR(uuid(), 25))), 'Test2');
Run Code Online (Sandbox Code Playgroud)

但是当我删除unhex函数时,我得到了同样的错误.那么我怎样才能将正确的ID从Java发送到mysql?

UPDATE

我在David Ehrmann的回答中解决了我的问题.但在我的情况下,我使用tomcat中的HexUtils将我的排序UUID字符串转换为bytes []:

byte[] final_id = HexUtils.fromHexString(partial_id);
Run Code Online (Sandbox Code Playgroud)

java mysql uuid primary-key sql2o

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

如何检测本地存储何时被清除

我在页面 A 中添加了本地存储中的一些值。当我转到页面 B 时,本地存储不应被清除,但确实如此。这是一个程序错误。但是,我无法正确跟踪它以了解这种情况何时发生。

我尝试执行 setInterval 来每 1 秒在控制台中记录一次本地存储的值,但当我导航出去时,我会丢失我的值。

我想知道是否有一种方法或工具可以确定在什么时候我像调用堆栈一样清除本地存储,而不是在 F12 开发工具中跟踪断点。我进行了搜索(CTRL + SHIFT + F)来查找,localStorage.clear()但在我的结果中,我清除 LS 的位置不相关且从未到达。

javascript c# debugging local-storage visual-studio-2012

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

更快速地验证SQL Server中的现有记录

我想知道这两个SQL语句中的哪一个在性能和最佳实践中更好,以便找到现有记录?还有另一种有效的方法吗?

IF EXISTS(SELECT 1 FROM TABLE WHERE ID = @ID)
BEGIN
--VALIDATION
END
Run Code Online (Sandbox Code Playgroud)

要么

SET @VARIABLE = SELECT COUNT(1) FROM TABLE WHERE ID = @ID)
IF(@VARIABLE > 0)
BEGIN
--VALIDATION
END
Run Code Online (Sandbox Code Playgroud)

sql sql-server count

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

How to sort a list of objects with IComparable and IComparer

I'm trying to implement the same example of this link but more oriented on the number of dependent kids.

http://www.codeproject.com/Articles/42839/Sorting-Lists-using-IComparable-and-IComparer-Inte

So I have 3 employees with A: 0, B: 0, C: 2 respectively. I want to order them descendently by number of kids. So I would have C:2, B:0, A:0

But my list it's not being sorted. It remains as A: 0, B: 0, C: 2

What I'm doing wrong?

My Comparer

public class EmployeeComparer : IComparer<Employee>
{
    public int …
Run Code Online (Sandbox Code Playgroud)

c# sorting list icomparable icomparer

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