小编Rah*_*sad的帖子

捕获和重新抛出异常的最佳做法是什么?

应该直接重新抛出捕获的异常,还是应该绕过新的异常?

也就是说,我应该这样做:

try {
  $connect = new CONNECT($db, $user, $password, $driver, $host);
} catch (Exception $e) {
  throw $e;
}
Run Code Online (Sandbox Code Playgroud)

或这个:

try {
  $connect = new CONNECT($db, $user, $password, $driver, $host);
} catch (Exception $e) {
  throw new Exception("Exception Message", 1, $e);
}
Run Code Online (Sandbox Code Playgroud)

如果您的答案是直接抛出,请建议使用异常链接,我无法理解我们使用异常链接的真实场景.

php exception

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

如何防止angular-ui模态关闭?

我在我的项目中使用Angular UI $ modal http://angular-ui.github.io/bootstrap/#/modal

我不希望用户通过按背景来关闭模态.我想只能通过按下我创建的关闭按钮来关闭模态.

如何阻止模态关闭?

angularjs angular-ui angularjs-service

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

如何在angularjs中的选择框选项内进行ng-translate

如何应用ng-translate翻译选择框内的选项.
例如:

模板:

<select class="form-control" ng-model="me.gender" ng-options="gender.name for gender in genders">
</select>
Run Code Online (Sandbox Code Playgroud)

控制器:

$scope.genders = [{code: "M", name:"TXT_MALE"}, {code: "F", name:"TXT_FEMALE"}]
Run Code Online (Sandbox Code Playgroud)

enUS.json:

{
    "TXT_MALE": "Male",
    "TXT_FEMALE": "Female",
}
Run Code Online (Sandbox Code Playgroud)

我尝试添加过滤器,ng-options="gender.name for gender in genders | translate" 但显然它是添加过滤器到$scope.genders数组而不是单个元素

我尝试编写自己的过滤器(我是新手)

filter('translateArrayObj', ['$translate', '_', function($translate, _) {
  return function(arr) {
    var arr2 = [];
    angular.forEach(arr, function (value, key) {
      $translate(value.name).then(function(translation) {
        var obj2 = angular.copy(value);
        obj2.name = translation;
        obj2.code = value.code;
        arr2.push(obj2);
      });
    });
    return arr2;
  }
}])
Run Code Online (Sandbox Code Playgroud)

但我得到了以下错误

Error: [$rootScope:infdig] …
Run Code Online (Sandbox Code Playgroud)

angularjs ng-options angular-translate

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

我们需要什么PHP异常代码?任何用例场景?

好吧,这对许多人来说是一个非常蹩脚的问题,但我希望我会有压倒性的反应:)

当我在PHP中抛出异常时,我可以在消息中添加代码.
我捕获异常并根据其类型(Like InvalidArgumentExceptionOutOfBoundException)处理它.我记录消息或显示它或做任何合适的事情.
我还可以添加一个先前的异常来跟踪错误原点的路径.

但有一件事我从未使用或从未想过:代码有用吗?

例如:

throw new Exception("db Error", $code, $previousException);
Run Code Online (Sandbox Code Playgroud)

我该怎么办$code

php exception-handling exception

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

Drupal 7如何覆盖特定内容类型的page.tpl?

我想覆盖page.tpl.php以获取特定的内容类型.我试过这些东西,没有什么对我有用.

  1. page--article.tpl.php
  2. page--node--article.tpl.php
  3. page--node--type--article.tpl.php
  4. page--node-type--article.tpl.php
  5. page--type--article.tpl.php

但是当我按数字定位特定节点时,page--node--8.tpl.php它工作正常.我认为page--article.tpl.php应该有效,但我不知道为什么它不起作用.

如果我说错了,请告诉我.我该如何调试这些东西.我听说我可以使用Devel模块,但对此一无所知.在正确的方向略有提示将不胜感激.

提前致谢

drupal drupal-7 drupal-theming

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

Golang:使用log.Println登录文件会处理并发访问

我有数百个子程序使用log.Println()写入日志文件
我使用log.Println写入error.log文件.

func main() {
  e, err := os.OpenFile("error.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666)
  if err != nil {
    fmt.Printf("error opening file: %v", err)
    os.Exit(1)
  }
  defer e.Close()
  errLog := log.New(e, ">>>", log.Ldate|log.Ltime)

  for i:=0; i<500; i++ {
      go worker(errLog)
  }
}

func worker(errLog log.Logger) {
  // Do some work 
  errLog.Println("Hello world!!!")
}
Run Code Online (Sandbox Code Playgroud)

我的方法是否正确?或者我应该使用通道来确保一次只有一个进程登录到文件,还是由日志包固有地处理?

log包还是负责缓冲还是直接写入文件?

file-io logging buffer go

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

Go中缓冲通道的用途是什么?

我从这个问题" Golang - 什么是通道缓冲区大小? "中理解,如果通道被缓冲,它将不会阻塞.

c := make(chan int, 1)
c <- data1 // doesn't block
c <- data2 // blocks until another goroutine receives from the channel
c <- data3
c <- data4
Run Code Online (Sandbox Code Playgroud)

但我不明白它是如何使用的.假设我有2个goroutine,第一个将接收data1而第二个接收data2然后它将阻塞,直到任何子程序可以自由处理data3.

我不明白它有什么区别?如果没有缓冲区,它将以相同的方式执行.你能解释一下缓冲有用的可能情况吗?

channel go

6
推荐指数
1
解决办法
1435
查看次数

为什么即使Access-Control-Allow-Origin设置为*,也会发送多个OPTIONS请求?

我已经构建了一个API(api.example.com),并希望可以从www.example.com对其进行访问。
我也希望可以从其他域进行访问。

为此,我添加了Access-Control-Allow-Origin:*

但是,当我打开www.example.com时,在所有api请求之前都会发送预检请求(OPTIONS请求)。
如何停止多个预检请求?我认为应该只有一个飞行前要求,我在做什么错!?还是浏览器在每次调用之前都要发送预检请求是自然的吗?
注意:我不想使用JSONP,因为我使它成为可公开访问的Access-Control-Allow-Origin:*

选项呼叫标题

Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:accept, authorization
Access-Control-Request-Method:GET
AlexaToolbar-ALX_NS_PH:AlexaToolbar/alxg-3.2
Connection:keep-alive
Host:api.touchtalent.biz
Origin:http://www.example.com
Referer:http://www.example.com/artist/52894/pratim-relekar
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36
Run Code Online (Sandbox Code Playgroud)

选项呼叫响应

Access-Control-Allow-Headers:origin, x-requested-with, content-type, Authorization
Access-Control-Allow-Methods:PUT, GET, POST, DELETE
Access-Control-Allow-Origin:*
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:163
Content-Type:text/html
Date:Fri, 13 Jun 2014 14:24:55 GMT
Keep-Alive:timeout=5, max=98
Server:Apache/2.2.22 (Ubuntu)
Vary:Accept-Encoding
X-Powered-By:PHP/5.4.6-1ubuntu1.8
Run Code Online (Sandbox Code Playgroud)

GET请求请求头

Accept:application/json, text/plain, */*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
AlexaToolbar-ALX_NS_PH:AlexaToolbar/alxg-3.2
Authorization:Bearer VtQJqaTGd7YFb8Mee6GfiLwiRrUdt2iCp9ITuiUE
Connection:keep-alive
Host:api.touchtalent.biz
Origin:http://www.example.com
Referer:http://www.example.com/artist/52894/pratim-relekar
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, …
Run Code Online (Sandbox Code Playgroud)

javascript cors preflight

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

如何在 Golang 中对多个变量应用单独的互斥锁?

我有多个变量,我想使用此方法使其互斥

type var1WithMutex struct {
    mu       sync.Mutex
    var1     int
}
func (v *var1) Set(value int) {
    v.mu.Lock()
    v.var1 = value
    v.mu.Unlock()
}
func (v *var1) Get() (value int) {
    v.mu.Lock()
    value = v.var1
    v.mu.Unlock()
    return
}
Run Code Online (Sandbox Code Playgroud)

同样,有数百个变量,如 var1、var2、var3.... var100
我如何使它们全部互斥而不重复此代码?
请注意,var1、var2、var3 等不是数组的一部分,彼此之间没有任何关系。var2 可以是 int,var3 可以是 User{}

synchronization mutex go

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

如何使用MQTT实现whatsapp类型信使?

我想像使用MQTT协议的whatsapp一样实现一个messenger.我应该阅读哪些教程?

我对以下几点感到困惑:

  1. 我应该如何实现消息传递的主题结构?(目前我正在使用/ domainname/phonenumber /(如果手机A要向手机B发送消息,它会向/ domainname/B /发布消息)
  2. 如果客户端B离线并在一段时间后上线,当客户端离线时,它将如何接收发送给他的消息(到主题/域名/ B /)?
  3. 如何实现发送/发送/读取确认?

我知道这些是非常基本的问题,但不幸的是我找不到任何指导初始步骤的资源.

结论:
在与已经在MQTT中实施大规模信使部署的人交谈之后,我得出结论,MQTT应该只使用一个协议.Pub/Sub很适合开始,但您应该拥有一层自己的业务逻辑,以实现灵活性和性能.但是,您可以使用pub/sub树实现大多数基本信使要求,但是您将受限于它,以后将难以扩展.

instant-messaging mqtt messenger

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

在设计数据库时使用表前缀是一个好习惯吗?

在设计数据库时使用表前缀是一个好习惯吗?

对于像" user_detail " 这样的表,
我使用列名,如ud_name,ud_email等.

我这样做是因为我想为每个列(在每个表中)保留唯一的名称,以便以后在加入时不会出现任何冲突列名的问题.

虽然我的一些同事在读取列名时遇到了问题(我不知道为什么),并且他们建议Name应该尽可能简单易读,所以我不应该使用任何前缀.

数据库设计遵循的标准命名法是什么?有前缀是不是很糟糕?请通过一些链接支持您的回答.

谢谢你
喜欢:)

database-design

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

Golang Json.Marshal错误

我一直在尝试将地图编码为JSON,但到目前为止我还没有成功.Json.Marshal不是编码值,它只是编码密钥.

https://gist.github.com/rahulpache/9174490

package main 
import (
    "encoding/json"
    "fmt"
)
type node struct {
    value   string
    expiry  float64
    settime float64
}

func main() {
    var x = make(map[string]node)

    x["hello"] = node{value: "world", expiry: 1, settime: 2}
    x["foo"] = node{value: "bar", expiry: 1, settime: 2}

    a, err := json.Marshal(x)
    fmt.Println(string(a))
}
Run Code Online (Sandbox Code Playgroud)

输出:

{"foo":{},"hello":{}}
Run Code Online (Sandbox Code Playgroud)

json marshalling go

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

使用Apache mod_rewrite相关问题的子域到文件夹

我想将所有子域映射到文件夹.
例如,subdomain.domain.com应显示domain.com/clients/subdmain的内容(透明)

RewriteCond %{HTTP_HOST} ^(.+)\.oomail\.org
RewriteCond %{HTTP_HOST} !^www\.oomail\.org [NC]
RewriteRule ^(.+)$ /var/www/clients/%1/$1
Run Code Online (Sandbox Code Playgroud)

我收到500内部服务器错误.为了检查我附加[R]标志的问题

RewriteRule ^(.+)$ /var/www/clients/%1/$1 [R]
Run Code Online (Sandbox Code Playgroud)

我在地址栏中得到了这个结果

http://q1.oomail.org/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/always.html
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个details.php文件,该文件转储了$ _GET变量的详细信息.它的内容是

<pre>
<?php
var_dump($_GET);
?>
</pre>
Run Code Online (Sandbox Code Playgroud)

并修改了RewriteRule(注意:我将$ 1和%1发送到details.php,显示其内容)

RewriteRule ^(.+)$ details.php?p=%1&d=$1
Run Code Online (Sandbox Code Playgroud)

打开后http://subdomain.oomail.org/file.html,我输出了

array(2) {
  ["p"]=>
  string(9) "subdomain"
  ["d"]=>
  string(11) "details.php"
}
Run Code Online (Sandbox Code Playgroud)

其中变量p是正确的(%1的值),这是"子域",但d($ 1值)为details.php其中我期待是file.html我在URL打开.我哪里错了?或者如何将file.html(URI)提取到变量中以进行映射?

apache subdomain mod-rewrite subdirectory

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