标签: error-suppression

PHP中的@符号有什么用?

我见过@某些功能的使用,如下所示:

$fileHandle = @fopen($fileName, $writeAttributes);
Run Code Online (Sandbox Code Playgroud)

这个符号有什么用?

php error-suppression operators

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

用PHP中的@运算符抑制错误

在您看来,使用@运算符来抑制PHP中的错误/警告是否有效,而您可能正在处理错误?

如果是这样,你会在什么情况下使用它?

欢迎使用代码示例.

编辑:回复者的注意事项.我不打算关闭错误报告,但是,例如,通常的做法是使用

@fopen($file);
Run Code Online (Sandbox Code Playgroud)

然后检查......但是你可以通过这样做摆脱@

if (file_exists($file))
{
    fopen($file);
}
else
{
    die('File not found');
}
Run Code Online (Sandbox Code Playgroud)

或类似的.

我想问题是 - 是否有任何@HAS用于抑制错误,不能以任何其他方式处理?

php error-suppression operators

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

抑制shell脚本错误消息

在我的shell脚本中,我得到了这些行:

rm tempfl.txt
rm tempfl2.txt
Run Code Online (Sandbox Code Playgroud)

如果这些不存在,我会收到错误消息:

rm: tempfl2.txt: No such file or directory
rm: tempfl.txt: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有没有办法只抑制这些消息,即使它们并不总是出现,因为文件可能存在?

shell error-suppression suppress-warnings

40
推荐指数
6
解决办法
6万
查看次数

如何禁用Vim铃声?

我试图在视觉和音频上禁用vim上的错误铃声.但是我不能让他们停下来.

我有以下内容vimrc:

" Disable annoying beeping
set noerrorbells
set vb t_vb=
Run Code Online (Sandbox Code Playgroud)

这不起作用,我想一些插件或其他设置正在重置它所以我再次添加它到我的结束 vimrc,仍然没有运气.

我可以让它关闭的唯一方法是set vb t_vb=在所有内容加载后手动调用.我想我可以通过在plugin/after文件夹中添加一个脚本来模拟这个,但我试图避免这种情况,因为这意味着每当我切换到另一台机器时,我必须设置另一件事.

你可以vimrc在这里看到我的全部内容:https://github.com/lerp/dotfiles/blob/master/vimrc

vim error-suppression

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

如何在C++代码中使用cppcheck的内联抑制过滤器选项?

我想使用Cppcheck进行C++代码的静态代码分析.我了解到我可以用--inline-suppr命令抑制某种警告.但是,我无法在评论中找到"suppress_error_id":

// cppcheck-suppress "suppressed_error_id"
Run Code Online (Sandbox Code Playgroud)

c++ static-analysis error-suppression cppcheck

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

检查方法中的Android权限

这是我的代码,它工作得非常好.

if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
    mMap.setMyLocationEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)

但我不喜欢每次检查都有这么大的代码,并希望将它委托给我的实用程序类中的方法.

if (Utils.hasMapLocationPermissions(getActivity())) {
    mMap.setMyLocationEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)

但是setMyLocationEnabled有注释@RequiresPermission因此我不能将它委托给一个方法,因为linteditor将它显示为一个错误.

是否有一些注释要写在我的实用工具方法上并抑制lint?

像这样的东西

@ChecksPermission
public boolean hasMapLocationPermissions(Activity activity) {
  return // my checking logic..
}
Run Code Online (Sandbox Code Playgroud)

android annotations coding-style lint error-suppression

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

我想念C#中Visual Basic的"On Error Resume Next".我现在该如何处理错误?

在Visual Basic中,我只是On Error Resume Next在我的程序的头部编写,并且在整个项目中错误被抑制.

在C#中我非常想念这个功能.try-catch每个程序的常规处理不仅非常耗时,而且会带来不希望的影响.如果遇到错误,即使已处理,代码也不会从发生的那一刻开始继续.使用On Error Resume Next,代码从错误点继续,仅跳过导致错误的函数调用.

我还没有深入参与C#,但也许C#中存在比原语更好的错误处理try-catch.

我还想要出现错误的模块或函数名称以及错误消息中的行号.Exception据我所知,该课程没有提供这些功能.任何想法(当然,托管,不涉及我自己的应用程序上的任何流程类)?

你如何处理大项目中的错误?我希望我不必try-catch为每个方法添加一个.不知何故,C#抛出了许多错误 - 这似乎是该语言的典型特征.

我发现我的解决方案可以解决我的几个问题:

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }

    [STAThread]
    static void Main()
    {
      Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); //setup global error handler
      Application.Run(new Form1());
    }

    private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
    {   
            MessageBox.Show("Unhandled exception: " + e.Exception.ToString()); //get all error information with line and procedure call
            Environment.Exit(e.Exception.GetHashCode()); …
Run Code Online (Sandbox Code Playgroud)

c# error-handling error-suppression

13
推荐指数
3
解决办法
6857
查看次数

Php函数参数错误抑制,empty()isset()仿真

我很确定这个问题的答案是否定的,但是如果有一些PHP大师的话

是否有可能以一种方式编写一个函数,其中可以传入无效参数或不存在的变量,并且php不会在不使用 '@'

很像空和isset.您可以传入刚刚编写的变量,也不会出错.

ex:

empty($someBogusVar); // no error

myHappyFunction($someBogusVar); // Php warning / notice
Run Code Online (Sandbox Code Playgroud)

php error-handling error-suppression

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

禁止"与'xyz'的WebSocket连接失败"

我编写了一个使用Web套接字的Web应用程序.这个想法是我的应用程序在启动时尝试自动连接到最近连接到主机.如果它无法建立与其中任何一个的连接,则它会将用户定向到连接部分并要求他们手动建立连接.

所有这一切都有效.总之,我按顺序尝试每个已知主机,如果200ms后它没有连接(`readyState!= 1),它会尝试下一个.所有这些主机应该在局域网上,所以200ms工作非常可靠.如果列表中的最后一个也失败,那么Web将打开一个模式,指示用户手动键入主机.

问题是,通过尝试自动连接,我必须为我尝试过的主机创建websockets,它会向控制台输出如下所示的错误消息:

与'ws:// lightmate:8080 /'的WebSocket连接失败:连接建立错误:net :: ERR_NAME_NOT_RESOLVED

与'ws:// localhost:8080 /'的WebSocket连接失败:连接建立错误:net :: ERR_CONNECTION_REFUSED

虽然不是任何方式致命的缺陷,但这是不雅观的,妨碍了我的调试.

我试图通过new WebSocket(address)使用try/catch块包围调用来删除它,并且错误仍然通过,我也尝试设置一个onerror处理程序,希望这会抑制错误消息.什么都没有用.

connect: function(){
  var fulladdr = completeServerAddress(address);
  try {
    connection = new WebSocket(fulladdr);
    connection.suppressErrorsBecauseOfAutoConnection = suppressErrorsBecauseOfAutoConnection; //Store this module-scoped variable in connection, so if the module changes suppression state, this connection won't.
  } catch (e){
    //Make sure we don't try to send anything down this dead websocket
    connection = false;
    return false;
  }
  connection.binaryType = "arraybuffer";
  connection.onerror = function(){
    if …
Run Code Online (Sandbox Code Playgroud)

javascript error-suppression websocket

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

@ $ array ['possible_missing_key']是反模式吗?

从PHP数组中提取可能缺少的值时,使用@是否可以?例:

$value = @$array['possibly_missing_key'];
Run Code Online (Sandbox Code Playgroud)

预期的行为:

if (isset($array['possibly_missing_key'])) {
    $value = $array['possibly_missing_key'];
} else {
    $value = null;
}
Run Code Online (Sandbox Code Playgroud)

我想知道,在传播使用模式之前.

php arrays error-suppression operators

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