问题列表 - 第24934页

为无效的数据库状态抛出哪个.NET异常?

我正在编写一些数据访问代码,我想检查数据库中潜在的"无效"数据状态.例如,我从数据库中返回一个小部件,我只期望一个.如果我得到两个,我想抛出异常.即使参照完整性应该防止这种情况发生,我也不希望依赖于DBA永远不会改变模式(为了澄清这一点,如果删除了主键约束并且我得到了一个欺骗,我想快速而清楚地打破).

我想使用System.IO.InvalidDataException,除了我没有处理文件流,所以它会产生误导.我最终得到了一个通用的applicationexception.谁有更好的主意?

.net c# exception-handling

8
推荐指数
2
解决办法
3495
查看次数

CodeIgniter - 在视图中访问$ config变量

我经常需要访问$config视图中的变量.我知道我可以将它们从控制器传递给load->view().但明确地做这件事似乎过分了.

是否有一些方法或技巧可以$config从CI视图访问变量而不会打扰带有备用代码的控制器?

php codeigniter

97
推荐指数
4
解决办法
13万
查看次数

WndProc中的64位异常默默地失败

在Windows 7 32位下运行时,以下代码将导致硬故障:

void CTestView::OnDraw(CDC* /*pDC*/)
{
    *(int*)0 = 0; // Crash

    CTestDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (!pDoc)
        return;

    // TODO: add draw code for native data here
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我在Windows 7 64bit上尝试这个,我只是在输出窗口中得到这个:

Test.exe中0x13929384处的第一次机会异常:0xC0000005:访问冲突写入位置0x00000000.
Test.exe中0x77c6ee42的第一次机会异常:0xC0150010:当前执行的线程未激活的激活上下文无效.

这是什么原因?我知道这是一个硬件异常(http://msdn.microsoft.com/en-us/library/aa363082.aspx),但为什么在32位和64位下运行时有区别?我能做些什么来正确处理这些错误?因为它们应该被捕获和修复,而不是目前发生的事情,Windows只是继续向应用程序发送消息并让它运行(因此用户和开发人员完全没有意识到实际发生了任何问题).

更新: 我们的常规崩溃报告软件使用SetUnhandledExceptionFilter但不会在x64上调用WndProc中的硬件异常.有没有人有关于此的任何信息,或解决方法?

Update2: 我在Microsoft Connect上报告了这个问题:https:
//connect.microsoft.com/VisualStudio/feedback/details/550944/hardware-exceptions-on-x64-machines-are-silently-caught-in-wndproc-消息

c++ windows 64-bit exception-handling seh

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

正则表达式只使用每个字母一次?

是否可以构造一个PCRE样式的正则表达式,它只匹配列表中的每个字母一次?

例如,如果您有字母"lrsa",并尝试匹配单词列表:

^[lrsa]*m[lrsa]*$
Run Code Online (Sandbox Code Playgroud)

你要匹配"lams"(有效),还要匹配"喇嘛"(因为你只有一个"a"而无效).如果你的信件是"lrsaa",你会想要匹配"喇嘛".

这是正确的表达式,或者我应该以编程方式处理它?

regex pcre

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

InputStreamReader缓冲问题

我正在从一个文件中读取数据,遗憾的是,这种文件有两种类型的字符编码.

有一个标题和一个正文.标头始终为ASCII,并定义正文编码的字符集.

标头不是固定长度,必须通过解析器运行以确定其内容/长度.

该文件也可能非常大,所以我需要避免将整个内容带入内存.

所以我开始使用单个InputStream.我最初使用带有ASCII的InputStreamReader包装它并解码标头并提取主体的字符集.都好.

然后我创建一个具有正确字符集的新InputStreamReader,将其放在同一个InputStream上并开始尝试读取正文.

不幸的是,javadoc证实了这一点,即InputStreamReader可能会选择提前读取以达到效率目的.因此,标题的阅读会咀嚼身体的一部分/全部.

有没有人有解决这个问题的建议?会手动创建一个CharsetDecoder并一次输入一个字节但是一个好主意(可能包含在自定义的Reader实现中吗?)

提前致谢.

编辑:我的最终解决方案是编写一个没有缓冲的InputStreamReader,以确保我可以解析标题而不会咀嚼身体的一部分.虽然这不是非常有效,但我使用BufferedInputStream包装原始InputStream,因此它不会成为问题.

// An InputStreamReader that only consumes as many bytes as is necessary
// It does not do any read-ahead.
public class InputStreamReaderUnbuffered extends Reader
{
    private final CharsetDecoder charsetDecoder;
    private final InputStream inputStream;
    private final ByteBuffer byteBuffer = ByteBuffer.allocate( 1 );

    public InputStreamReaderUnbuffered( InputStream inputStream, Charset charset )
    {
        this.inputStream = inputStream;
        charsetDecoder = charset.newDecoder();
    }

    @Override
    public int read() throws IOException
    {
        boolean middleOfReading = false;

        while ( true …
Run Code Online (Sandbox Code Playgroud)

java buffer decode character-encoding inputstreamreader

11
推荐指数
1
解决办法
2131
查看次数

与PHP中两个数组的值进行比较

嗨,我想比较2个数组的所有值,最后得到一个真或假.我正在使用下面的代码,并认为结果将是错误的.但事实并非如此,当最后一行运行时,我希望显示类似的东西

数组([0] => 0)

但我没有显示,所以假设php很高兴没有区别

我的代码是

        $before = array('1', '1', '0', '0', '1', '0' ) ;
        $after =  array('0', '1', '0', '0', '1', '0' ) ;

        $new_array= array_diff($before,$after);

        print_r ($new_array) ;
Run Code Online (Sandbox Code Playgroud)

当然array_diff应该发现差异吗?任何帮助都会非常感谢

php arrays

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

ASP.NET Charting Control不再使用.NET 4

我刚刚升级到.NET 4,我的ASP.NET图表控件不再显示.

对于.NET 3.5,控件生成的HTML看起来像这样:

<img id="20_Chart" src="/ChartImg.axd?i=chart_5f6a8fd179a246a5a0f4f44fcd7d5e03_0.png&amp;g=16eb7881335e47dcba16fdfd8339ba1a" alt="" style="height:300px;width:300px;border-width:0px;" />
Run Code Online (Sandbox Code Playgroud)

现在,对于.NET 4,它看起来像这样(注意源路径的变化):

<img id="20_Chart" src="/Statistics/Summary/ChartImg.axd?i=chart_5f6a8fd179a246a5a0f4f44fcd7d5e03_0.png&amp;g=16eb7881335e47dcba16fdfd8339ba1a" alt="" style="height:300px;width:300px;border-width:0px;" />
Run Code Online (Sandbox Code Playgroud)

该图表位于MVC局部视图中,该文件夹位于名为"Statistics"的MVC Area文件夹和名为"Summary"的MVC Views文件夹中(即"/ Areas/Statistics/Views/Summary"),因此这显然是改变路径来自.

我所做的就是将System.Web.DataVisualization程序集从3.5切换到4.0.

任何帮助非常感谢.

asp.net asp.net-mvc charts .net-4.0

6
推荐指数
3
解决办法
5110
查看次数

将XML快速转换为Excel

什么是将XML中的112K行转换为Excel视图的最快(最少努力,而不是超级性能)方式.

xml xslt excel

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

更快地执行方法参数检查的方法

这主要是出于好奇,可能是一个愚蠢的问题.:)

我有这样的方法:

public void MyMethod(string arg1, string arg2, int arg3, string arg4, MyClass arg5)
{
    // some magic here
}
Run Code Online (Sandbox Code Playgroud)

没有参数可以为null,并且所有字符串参数都不能相等String.Empty.

而不是我有一个大的列表:

if(arg1 == string.Empty || arg1 == null)
{
    throw new ArgumentException("issue with arg1");
}
Run Code Online (Sandbox Code Playgroud)

是否有更快捷的方法来检查所有字符串参数?

如果我的问题不明确,请道歉.

谢谢!

c# arguments exception

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

无关的图书馆链接

我有一个问题可能有点傻,因为我很确定我可能已经知道了答案.

假设你有静态库A,动态共享对象库B和Linux下的程序C. 假设库A调用库B中的函数,并且程序从库A调用函数.现在假设C中调用的所有函数都不使用B中的函数.

要编译C,仅仅链接A和省略B就可以了,而且你的程序C可以在没有安装库B的系统上运行吗?

linux linker shared-libraries static-libraries

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