小编iva*_*eev的帖子

Err.Raise()忽略了自定义描述和来源

我有一个带有Let函数的类模块,它引发了一个自定义错误,示例如下所示

Private pValue As Double
Public Property Let Value(v As Double)
    If v < 0 Then
        Err.Raise vbObjectError + 1, "error source", "error description"
    Else
        pValue = v
    End If

End Property
Run Code Online (Sandbox Code Playgroud)

在另一个子类中,我在一个对象上调用类函数(例子),并通过传递一个小于0的值来引发错误.在同一个子句中,我设置了错误处理,以根据错误号捕获多个错误.

Sub TestSub()
Dim Example As Test
Set Example = New Test

On Error GoTo errorHandler
Example.Value = -1
On Error GoTo 0

Exit Sub

errorHandler:
MsgBox Err.Number & "," & Err.Description & " in " & Err.Source

End Sub
Run Code Online (Sandbox Code Playgroud)

消息框打印出正确的错误号,但描述是对象的通用方法〜失败,源是通用的VBAProject.我真的很喜欢打印出我给Err.Raise的错误信息.有谁知道这里的问题是什么?我有错误处理设置打破未处理的错误.

消息框中显示的消息是:

对象'_Test'的方法'值'失败

编辑:将代码更新为发生问题的完整方案

error-handling vba

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

根据一组键/值对生成对话框

我正在处理现有的UI,我需要做一些修改.UI使用freemarker进行模板化.

HTML页面中有一个部分是:

<td>
    <#if authRole?? && authRole == 'ADMIN' >
    <#if leaf.value??>
    <a href="#" data-toggle="modal" class="href-select" data-target="#addPropertyModal" itemprop="${leaf.strValue?html}" >${leaf.name}</a> 
    <#else>
    <a href="#" data-toggle="modal" class="href-select" data-target="#addPropertyModal" itemprop="" >${leaf.name}</a> 
    </#if>
    <#else>
    ${leaf.name}
    </#if>
</td>
Run Code Online (Sandbox Code Playgroud)

在此处单击该leaf.name值将打开一个对话框,其中包含名称和值文本框.对话框的模式是这样的:

<div class="modal fade" id="addPropertyModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title" id="myModalLabel">Add Property</h4>
            </div>
            <div class="modal-body">
                <div class="input-group input-group-lg">
                    <span class="input-group-addon">Name</span>
                    <input type="text" id="newProperty"  name="newProperty" class="form-control" placeholder="name">
                    </div>
                    <br/>
                    <div class="input-group input-group-lg">
                        <span class="input-group-addon">Value</span>
                        <textarea …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery freemarker

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

在浏览器中获取呈现文本的确切字体,可能使用浏览器扩展名

我知道你可以获得font-family值,window.getComputedStyle()但这并不总是浏览器用来呈现的字体.例如,如果给定的文本包含(多语言)文本的字体族不携带,浏览器呈现部分地与系统字体的文本.

如果你看一看内置的web开发工具,无论是在Chrome或Firefox,他们都有一个小区域,以显示(Rendered Fonts在Chrome窗格或Fonts选项卡上的Firefox浏览器)所使用的确切的字体.对于Firefox,我想这个代码是用的,它似乎是在调用内部API.

我正在寻找任何符合DOM(或特定于供应商)的方式来从JavaScript土地获取确切的字体.如果这意味着编写浏览器扩展/附加组件以提供API /注入信息/任何内页代码访问,这是最糟糕的情况,但可以接受.

javascript firefox fonts google-chrome browser-extension

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

Google Places API Framework文件夹iOS中缺少某些类

我按照以下步骤安装Google Map Framework:

图.1

我无法在我的Project文件夹中找到指定的文件:

fig2

请告诉我:从哪里可以找到指南中提到的丢失文件?

xcode google-maps objective-c ios google-places-api

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

Java中Heisenbugs的可能和不太可能的原因?

我有一个经典的Heisenbug例子是由我以前从未见过的情况引发的.我的遗留应用程序(大约100K旧代码)无法在特定实例中正常工作,仅仅启用JPDA进行远程调试就足以改变行为,导致应用程序正常工作:除了添加"-Xdebug -Xnoagent -Xrunjdwp之外什么都不做: transport = dt_socket,server = y,suspend = n,address = 6666"到vm的命令行隐藏了bug(有或没有实际连接).鉴于我有一个完全可重复的测试用例,我讨厌在代码更改的情况下对其进行干扰,以防它重新隐藏.当然,这只发生在生产中.

通常,我会立即假设一个线程问题,但是a)行为是100%失败与100%工作,b)在相关代码路径中没有明确使用线程.然后我们的团队试图找出这种行为的其他原因列表,所以我想也许Stack Overflow的团队思想可能会增加更多.

Java中的Heisenbugs:

  • 线程:错误的同步,竞争条件,隐式排序假设.
  • 显式调试/日志记录代码:代码路径中的更改导致/防止出现问题.不太常见的是,日志级别的更改可能导致时序更改(再次线程化)和I/O资源使用的差异.
  • 本机代码库可以拖入非Java Heisenbug问题.
  • 期待终结者以可预测的方式运行.
  • 关于弱引用的不恰当假设.
  • 假设固定大小的缓存永远不会填充.
  • 期待哈希码的唯一性.
  • 假设==适用于字符串(或者不适用于可能在某些情况下被中断的字符串).
  • VM bug(不,那从未发生过;).
  • 测试方法错误.特别是当存在依赖于测试成功的隐藏变量时.(这看起来是我们的实际问题.一次测试的成功导致客户运行下一次测试,由于策略问题而失败.失败导致根据策略在调试模式下运行,这导致成功.叹气)

还有其他值得探索的案例吗

编辑:

  • 是的,JPDA启用代码使用旧语法.我没有测试过使用现代语法是否也会改变行为.
  • 这台特定的机器使用1.8.0_45-b14作为JRE,HotSpot 64位服务器VM(版本25.45-b02)
  • 虽然问题是一般的,但鼓动的​​问题是真实的和最新的.由于这个问题在已部署的系统中出现,我想要让它与-Xdebug一起运行作为一种解决方法,以便它保持运行并希望跟踪底层错误并将其杀死.
  • 有问题的故障程序是多步骤数据处理管道的一部分 - 细节无关紧要,但可以最好地理解为从数据库获取一些信息然后用它来修改某些文件的独立应用程序.系统中破坏的部分似乎是来自数据库的信息没有被正确解释 - 来自破坏的对象ORM或缓存的任何东西.当它"被破坏"时,确定它是否有工作要做的应用程序逻辑(基于db的内容)对所有迭代(数千次迭代,包括程序的多次调用)做出错误的选择.当它"工作"时(唯一的区别是vm与-Xdebug一起运行),应用程序为所有迭代做出正确的选择.它在此配置中完全一致.针对不同数据库运行的相同代码不会失败.有一些证据(在我参与此代码之前)已经看到类似的行为,在看似微小的代码变化之后神秘地开始工作......参见"Heisenbug"

java debugging jpda

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

重定向到文件的标准输出显示与实际不同

在我的下面的程序中,输出被重定向到文件test1.txt,但是当我打开文件时,我有三个问题:

  1. 我看到像ls,pwd这样的命令在提示符下面(sw0:FID128:root>).
  2. 提示符应显示"sw0:FID128:root>",但它显示"sw0:FID128:root"
  3. 如果实际输出有2个选项卡,则该文件仅显示1个选项卡.

我基本上希望它与另一个文件进行比较,因此如果选项卡的数量不同,它将失败.

 telconn=pexpect.spawn('telnet 10.24.12.109')
 telconn.logfile = sys.stdout
 telconn.expect(":")
 telconn.send("user" + "\r")
 telconn.expect(":")
 telconn.send("pass" + "\r\r\r\r\n\n\n")
 telconn.expect("key to proceed.")
 telconn.send ("\003")
 telconn.expect("root>")
 prev_std= sys.stdout
 sys.stdout=open("test1.txt","w")

 print "Telnet connection is done"

 telconn.sendline('\n');
 telconn.expect (['>',pexpect.EOF])
 ls = telconn.before

 telconn.sendline('ls -al');
 telconn.expect (['>',pexpect.EOF])
 ls = telconn.before

 telconn.sendline('pwd');
 telconn.expect (['>',pexpect.EOF])
 pwd = telconn.before

 telconn.sendline('noscli');
 telconn.expect (['#',pexpect.EOF])
 nos = telconn.before

 telconn.sendline('terminal length 0');
 telconn.expect (['#',pexpect.EOF])
 term = telconn.before

 telconn.sendline('\n\n');

 telconn .sendline('exit');
 telconn.close()

 print ls
 print pwd
 print nos
 print term

 #print "Ended session" …
Run Code Online (Sandbox Code Playgroud)

python io shell

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

在几次pickle/unpickle迭代之后,shelve引发了EOFError

我正在使用搁置模块来保存一些数据.我的shelve对象的键值是设置对象.

酸洗片段:

import shelve

other_links = {
'Blue Estate The Game, 72': 'https://store.steampowered.com/account/ackgift/A5e5AB6C5050A331B?redeemer=esmcfofp%40skinsgifts.com', 
'Hope Lake, 75': 'https://store.steampowered.com/account/ackgift/70E2E6Ce9F1733265?redeemer=esmcfofp%40skinsgifts.com', 
'Forget Me Not: My Organic Garden, 74': 'https://store.steampowered.com/account/ackwift/A14373949D126B37?redeemer=esmcfofp%40skinsgifts.com', 
'Until I Have You, 74': 'https://store.steampowered.com/account/ackgift/69030w5ECB8D0F07F?redeemer=esmcfofp%40skinsgifts.com', 
'Lex Mortis, 74': 'https://store.steampowered.com/account/ackgift/2760w1D8B48EB3601?redeemer=esmcfofp%40skinsgifts.com', 
'I am Bread, 72': 'https://store.steampowered.com/account/ackgift/1CEC5e2D2BEF20C41?redeemer=esmcfofp%40skinsgifts.com', 
'Lumini, 72': 'https://store.steampowered.com/account/ackgift/472F108Aw0609C215?redeemer=esmcfofp%40skinsgifts.com'
}
links = shelve.open('links', writeback = True)
for key, value in other_links.items():
    db_value = links.get(key)
    if not db_value:
        db_value = set()
    db_value.add(value)
    links[key] = db_value
links.close()
Run Code Online (Sandbox Code Playgroud)

在几次转储之后,引发了EOFError异常:

Exception in thread Thread-3:
Traceback (most recent call last):
  File …
Run Code Online (Sandbox Code Playgroud)

python shelve pickle

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

TensorFlow导入错误:没有名为_pywrap_tensorflow的模块

我正在尝试按照TensorFlow安装文档在Mac上设置TensorFlow .

但是,在完成概述的步骤并尝试" import tensorflow as tf"后,我得到以下错误跟踪:

>>> import tensorflow as tf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/tensorflow/__init__.py", line 23, in <module>
    from tensorflow.python import *
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 21, in <module>
    _pywrap_tensorflow = swig_import_helper()
  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 20, in swig_import_helper
    return importlib.import_module('_pywrap_tensorflow')
  File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named _pywrap_tensorflow
Run Code Online (Sandbox Code Playgroud)

我之前已经在我的机器上安装和使用过TensorFlow,但从未遇到过这个问题.

python tensorflow

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

在Python中使用多个线程计算阶乘

我使用Python 2.7,我有一个任务来编写一个使用多个线程来计算阶乘的函数。我尝试使用传统的递归方法来做到这一点,例如

def factorial(n):
    if n < 1:
        return 1
    else:
        return n * factorial(n - 1)
Run Code Online (Sandbox Code Playgroud)

但似乎这种方式不适合多线程。有什么方法可以使用多个线程来计算阶乘?

python algorithm multithreading

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

从dict创建一个数据框,其中值是可变长度列表

我有一个dict,其中值是一个列表,例如;

my_dict = {1: [964725688, 6928857],
           ...

           22: [1667906, 35207807, 685530997, 35207807],
           ...
           }
Run Code Online (Sandbox Code Playgroud)

在此示例中,列表中的最大项目为4,但可能大于该项目.

我想将其转换为数据帧,如:

1  964725688
1  6928857
...
22 1667906
22 35207807
22 685530997
22 35207807
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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