小编Mar*_*lka的帖子

有没有办法忽略'Unreachable statement'错误?

有可能以某种方式忽略此错误?我发现只是放在return我不想运行的代码前面比评论它更容易(当评论重叠并表现不好时)......

java

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

MinGW在linux上进行交叉编译

我有一个项目,我想为Windows编译.我有适当的makefile,一切都适用于g ++.我跑了g++,下载了一个100-ahh的MB软件包,但我找不到如何实际运行它.没有mingw可执行文件,我也无法在互联网上找到任何帮助,那么我如何用它进行实际编译呢?

c++ compilation cross-compiling mingw-w64

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

何时会调用Fragment的onDestroyView,但它不会被销毁?

看一下Fragment的生命周期,我不确定这里可能发生的情况.当Fragment停止活动时,有两种可能的方法.

  1. 调用适当的回调,销毁视图然后销毁片段
  2. 调用回调,销毁视图,但保持片段本身存活

在哪种情况下完成了两种替代方案中的哪一种?是什么决定了他们中的哪一个?如果将一个片段添加到后台堆栈中,然后删除/替换,为什么不将它丢弃?为什么要保留它?

编辑:它突然出现在我身上,是否取决于片段是否被保留?

在此输入图像描述

android android-fragments

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

使用 LiveData、协程和事务测试 Android Room

我想测试我的数据库层,但我发现自己陷入了 catch-22 类型的情况。

测试用例由两部分组成:

  • 保存一些实体
  • 加载实体并断言数据库映射按预期工作

简而言之,问题在于:

  • Insert是一个suspend方法,这意味着它需要运行runBlocking{}
  • Query返回一个LiveData结果,这也是异步的。因此需要观察。有这个SO question 解释了如何做到这一点。
  • 但是,为了根据上述链接观察 LiveData,我必须使用InstantTaskExecutorRule. (否则我得到java.lang.IllegalStateException: Cannot invoke observeForever on a background thread.
  • 这适用于大多数情况,但不适用于带@Transaction注释的 DAO 方法。测试永远不会结束。我认为它在等待某个事务线程时陷入僵局。
  • 删除InstantTaskExecutorRule让 Transaction-Insert 方法完成,但随后我无法断言其结果,因为我需要规则才能观察数据。

详细说明

我的Dao课是这样的:

@Dao
interface GameDao {
    @Query("SELECT * FROM game")
    fun getAll(): LiveData<List<Game>>

    @Insert
    suspend fun insert(game: Game): Long

    @Insert
    suspend fun insertRound(round: RoundRoom)

    @Transaction
    suspend fun insertGameAndRounds(game: Game, rounds: List<RoundRoom>) {
        val …
Run Code Online (Sandbox Code Playgroud)

testing android kotlin android-room kotlin-coroutines

16
推荐指数
1
解决办法
2235
查看次数

"EOSError 1400 - 窗口句柄无效"的可能原因

我有个问题.我有一个使用线程的VCL应用程序.该线程进行一些计算,并通过Synchronize()调用MainForm的方法.一切正常,我有一个"开始"按钮,它创建并运行线程和一个"停止"按钮,停止并释放它.没有错误,没有任何错误.

但由于某些原因,当我关闭应用程序并且我运行该线程时,我得到了一个EOSError 1400 - Invalid window handle.我已经打破了OnClose程序,我在那里做的唯一事情是保存一个ini文件,没有错误,当我进一步追踪(使用F7)时,我到达最后(Application.Run; end.),在"调用"后end.我得到错误,因此没有特定的代码行提升它.

我希望这个问题有点清楚,我希望它是可以解决的,因为忽略错误似乎有点不洁净.

谢谢inb4


回答

当调用线程的Execute方法时,我发生了这个错误,它看起来像这样:

procedure TRunThread.Execute;
var (...)
begin
  while not Terminated do begin
    (...)
    MainForm.Memo1.Lines.Add('Some text'); // Even though this call worked fine during
    //the application running, it caused errors on shutting the app down.
    // For acccessing GUI elements, it's necessary to use Synchronize()
    (...)
  end;
end;
Run Code Online (Sandbox Code Playgroud)

delphi multithreading eoserror

12
推荐指数
1
解决办法
9851
查看次数

在@Transactional 服务方法中捕获 DataIntegrityViolationException

我有一个带有 Hibernate 的 REST Spring 启动应用程序。为简单起见,我们假设此工作流程:

  1. 控制器处理传入的请求,调用服务方法
  2. 服务方法是@Transactional,做一些业务逻辑并调用持久化方法
  3. 持久性方法由 DAO 对象处理,将内容保存到数据库中。

数据库uniqueusername用户有约束。我现在的工作方式是这样的:

  1. 客户端向控制器发送请求
  2. 控制器调用服务
  3. 服务尝试通过 DAO 保存对象。如果DataViolationException发生,服务返回自定义异常
  4. 控制器捕获自定义异常并发回适当的响应

伪代码是这样的:

public class UserController {
    @RequestMapping("/user")
    public User createUser(...){
        try{
            return userService.createUser(...);
        } catch (UserAlreadyExistsException e){
            // Do some processing and return error message to client
        }
    }
}

public class UserService {
    @Transactional
    public User createUser(...){
        (...)
        try{
            userDAO.save(newUserObject);
        } catch(DataIntegrityViolationException e){
            throw new UserAlreadyExistsException(username);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这样我在尝试创建重复用户时会收到错误消息。

javax.persistence.RollbackException: Transaction marked as …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate transactions

11
推荐指数
2
解决办法
7109
查看次数

如何在Google风格的Pydoc for Pycharm中表示返回类型元组?

在Pycharm中,我希望有一个记录的函数,它返回一个元组,以便我可以在其上获得代码.评论的风格是谷歌风格.


工作正常:

def func():
    """

    Returns:
        str: something

    """
    pass
Run Code Online (Sandbox Code Playgroud)

func().正确键入显示方法str.


然而,键入此工作了:

def func():
    """

    Returns:
        (int, str): something

    """
    pass

a, b = func()
Run Code Online (Sandbox Code Playgroud)

打字b.不提供任何东西.


我知道PyCharm能够解析元组,因为这段代码有效:

def func():
    """

    :rtype: (int, str)
    """
    pass

a, b = func()
Run Code Online (Sandbox Code Playgroud)

但是,这不符合谷歌的风格.


如何根据标准记录函数,以便Pycharm接收返回类型?

python pydoc pycharm

11
推荐指数
2
解决办法
1234
查看次数

501推送到Artifactory Docker存储库时未实现

我将Artifactory设置为Docker存储库.我按照文档,我能够成功从我的虚拟Docker仓库中提取图像.

但是,当我尝试将映像推送到本地存储库时,它会因501 Not Implemented错误而失败.

这是我的设置:

Nginx是反向代理:

artifactory.somedomain.com:8085 -> http://localhost:8081/artifactory/api/docker/docker-local/v2
artifactory.somedomain.com:8086 -> http://localhost:8081/artifactory/api/docker/docker/v2
Run Code Online (Sandbox Code Playgroud)
  • docker-local是一个本地存储库,API V2,不强制进行身份验证.没有其他设置.
  • docker是一个虚拟存储库,聚合docker-local和docker-remote(它只代表std Docker repo)

命令运行:

docker pull artifactory.somedomain.com:8086/busybox:latest 
docker tag artifactory.somedomain.com:8086/busybox artifactory.somedomain.com:8085/busybox 
docker push artifactory.somedomain.com:8085/busybox 
Run Code Online (Sandbox Code Playgroud)

结果是:

The push refers to a repository [artifactory.somedomain.com:8085/busybox] (len: 1) 
2c5ac3f849df: Buffering to Disk 
Received unexpected HTTP status: 501 Not Implemented 
Run Code Online (Sandbox Code Playgroud)

什么想法可能是错的?谢谢!

nginx.conf (前两个规则一般处理重定向http,后两个规则处理Docker存储库的代理)

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

events …
Run Code Online (Sandbox Code Playgroud)

nginx artifactory docker

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

Python的shutil.make_archive()在Windows上创建了dot目录

使用shutil.make_archive('newarchive', 'zip', <directory>)创建在Python 3.5的ZIP档案并不像预期的那样在Windows上.

在Linux上它可以正常工作,里面的所有文件和文件夹directory都归档并在zip文件中可见.但是,在Windows上会创建一个额外的文件夹 - 点文件夹..看截图:

在此输入图像描述

文件夹本身是空的,但我想完全摆脱它(另一个过程对结构非常严格).解决方法是不使用make_archive()和手动创建ZipFile,但我觉得该功能应该首先工作.

这是一个错误还是我错过了什么?


编辑:点文件存在于7Zip以及Total Commander中.这是我最短的工作片段(Python 3.5.1,Windows 10):

import shutil
import os
os.chdir('C:/Users/melka/Downloads')
shutil.make_archive('testing', 'zip', 'zip_test')
Run Code Online (Sandbox Code Playgroud)

这将从内容创建一个新的ZIP C:\Users\melka\Downloads\zip_test,最终成为: 在此输入图像描述

但是,使用此代码手动创建zip不会创建点文件:

import os
import zipfile


def make_zip(zip_name, path):
    zip_handle = zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED)

    os.chdir(path)
    for root, dirs, files in os.walk('.'):
        for file in files:
            zip_handle.write(os.path.join(root, file))

os.chdir('C:/Users/melka/Downloads')
make_zip('anotherzip.zip', 'zip_test')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python windows zip

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

如何从ImageList加载透明图像?

我想从一个加载图像(32比特深度,透明的)TImageList到一个TImage.标准方法是ImageList.GetBitmap(Index, Image.Picture.Bitmap);.但是该GetBitmap方法不适用于透明度,因此我总是得到一个非透明的位图.

delphi png transparency timage timagelist

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